2012-05-09 6 views
4

私はbackboneJs + jqueryコードを持っていましたが、今はrequireJsを使用してモジュール化しようとしています。 私のコードでは、私は、などnanoscrollerのような追加のjQueryプラグインを使用していますバックボーンにJquery Pluginを追加する+ require.js code

以前だけでスクリプトを呼び出すことは十分だった。

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

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

は今、私は、スクリプトを呼び出すようにしようとしていますしかし、次のエラーが発生しています。

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

私は物事のカップルを試しました: "定義"の代わりに "必要"を使用して、それは仕事をしませんでした。私はここで何が欠けているのか分かりません。親切に助けてください。

ありがとう、 Komal。

答えて

2

Jqueryが正しく定義されていないため、エラーが発生していませんでした。これは、jQueryがロードされる前に、ナノスケールのライブラリがロードされていたためです。 解決策は、 "order"プラグインを使用して、nanoscrollerライブラリがロードされる前にjQueryがロードされていることを確認することでした。問題がどのように解決されたかは次のとおりです。

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

jQueryのは、実際にという名前のモジュールとしての地位を定義しています。通常

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

you are discouraged独自のモジュール名を追加することから、しかし、jQueryのの場合には、単にどこを使用して、ライブラリを見つけるためにRequireJSを指示する必要がありますパス設定:

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

あなたは自分のrequiredefine呼び出しでjqueryを使用できるようにする必要があります。

RequireJSを設定する方法は複数あります。read about in the API docsです。

関連する問題