4

BackboneJs + jqueryコードがありましたが、requireJsを使用してモジュール化しようとしています。私のコードでは、nanoscrollerなどの追加のjqueryプラグインを使用しています。

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

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

今、私は次の方法でスクリプトを呼び出そうとしています。

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

しかし、次のエラーが発生します。

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

私はいくつかのことを試しました:「define」の代わりに「require」を使用しましたが、うまくいきませんでした。ここで何が欠けているのかわかりません。親切に助けてください。

ありがとう、コマル。

4

2 に答える 2

2

jQueryは、実際にはそれ自体を名前付きモジュールとして定義しています。

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

通常、独自のモジュール名を追加することはお勧めしませんが、jQueryの場合は、パス構成を使用して、ライブラリの場所をRequireJSに指示するだけです。

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

jqueryそれはあなたがあなたrequiredefine電話でただ使うことを可能にするはずです。

RequireJSを構成する方法は複数あります。これについては、APIドキュメントで確認できます

于 2012-05-09T09:57:31.510 に答える
2

エラーは、Jqueryが適切に定義されていないためではありませんでした。これは、jQueryが読み込まれる前にnanoscrollerライブラリが読み込まれていたためです。解決策は、「order」プラグインを使用して、nanoscrollerライブラリがロードされる前にjQueryがロードされていることを確認することでした。以下は、問題がどのように解決されたかを示しています。

require(['order!jQuery', 'order!library/jquery/jquery.nanoScroller'], function ($) {
     $("#myFields").nanoScroller();
}
于 2012-05-11T06:58:57.873 に答える