4

I had a BackboneJs + jquery code which now I am trying to modularize using requireJs. In my code I am using additional jquery plugins like nanoscroller etc.

Earlier just calling the script was enough:

<script type="text/javascript" src="../javascript/jquery.nanoscroller.js"></script>

Now I am trying to call the script by:

define([
  'jQuery',
  'Underscore',
  'Backbone',
  'text!templates/landingTemplate.html',
  'library/jquery/jquery.nanoscroller.js'
], function($, _, Backbone, LandingTemplate){
var LandingView = Backbone.View.extend({

But I am getting following error:

Error: jQuery is not defined
Source File: http://localhost:8080/sample/Main%20App/Backbone%20+%20Require.js%20Impl/js/library/jquery/jquery.nanoscroller.js

I have tried couple of things: Using "require" instead of "define" but it didnt work. I am not sure what am I missing here. Kindly Help.

Thanks, Komal.

0

2 Answers 2

2

jQuery actually defines itself as a named module:

define( "jquery", [], function () { return jQuery; } );

Normally you are discouraged from adding your own module names, but in the case of jQuery you simply need to tell RequireJS where to find the library by using the paths configuration:

require.config({
    paths: {
        jquery: 'lib/jquery',
    }
});

That should allow you to just use jquery in your require and define calls.

There is more than one way to configure RequireJS, which you can read about in the API docs.

Sign up to request clarification or add additional context in comments.

Comments

2

The error was not because the Jquery was not properly defined. It was because the nanoscroller library was getting loaded before jQuery was. The solution was use the "order" plugin to make sure jQuery is loaded before the nanoscroller library is loaded. Following is how the issue got resolved for me:

require(['order!jQuery', 'order!library/jquery/jquery.nanoScroller'], function ($) {
     $("#myFields").nanoScroller();
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.