0

この時点で、requirejs に少しイライラしています。

App.coffee ファイルに jquery やその他のライブラリをロードしようとしています。問題は、定義でモジュールの依存関係を読み込めないことです。一部の入力引数 (jq、jsn など) は null または単なる HTMLDocument オブジェクトです。これは、試したプラグインの順列 (「order」、「domReady」、またはなし) に基づいて変化します。

私の js lib ディレクトリは A) のようになります。そして、私の App.coffee ファイルは B) のようになります。私はrequire.configで「パス」を使用しようとしましたが、生のファイル参照のみを使用しました(以下を参照)。私はrequirejs-jqueryの統合を認識しています。しかし、プラグインのロードを注文することはできませんか?

「パス」という名前を付けようとすると、別のエラー セットが表示されます。誰かがjquery 1.7を提案しているのを見ました(こちらも)。これは稼働していますか?最初に一歩下がって、コンセプトを正しく理解していることを確認したいと思いました。i) require.config ii) 依存関係を含むモジュール定義 iii) order プラグインなど

これらの概念が正しく理解できていれば、jquery のバージョンの問題だと思います。ただし、依存関係はjqueryだけではありません。そして、このように時間を失うのは信じられないほど面倒です. どんな助けでも大歓迎です。前もって感謝します。

A)

    $ツリーjs/lib/
    js/lib/
    ├──backbone.js
    ├──backbone_loader.js
    ├──domReady.js
    ├──jquery-1.6.3.js
    ├──json2.js
    ├──order.js
    ├──pure.js
    ├──require.js
    └──underscore.js

B)

    require.config({
      baseUrl: "/js",
      パス:
        オーダー: '/js/lib/order'
        jQuery: '/js/lib/jquery-1.6.3'
        json2 : '/js/lib/json2'
        アンダースコア: '/js/lib/underscore'
        バックボーン: '/js/lib/backbone_loader'
        ピュア: '/js/lib/ピュア'
    }))


    define( [ 'js/lib/order!js/lib/jquery-1.6.3',
              'js/lib/order!js/lib/json2',
              'js/lib/order!js/lib/アンダースコア',
              'js/lib/order!js/lib/バックボーン',
              'js/lib/order!js/lib/pure',
              'js/lib/order!js/bkeeper/models', ]
      (jq、jsn、und、bbn、pur、モデル) ->

        console.log('読み込み中')

        # モデルを含むオブジェクトを返す  
        モデル : モデル
        jQuery : jq.noConflict()
        json2 : jsn
        アンダースコア: und.noConflict()
        バックボーン : bbn.noConflict()
        ピュア:ピュア
    )

4

2 に答える 2

0

最新の jQuery は AMD ローダーをサポートしており、require.js で正常に動作します。アンダースコアとバックボーンはそうではなく、次のいずれかを行う必要があります。

  1. たとえば、require の作成者からのものなど、変更されたバージョンを使用してください。
  2. プラグインを使用します。使い道見つけた!ここからのプラグインで、私のニーズに完全に適合します。
于 2012-02-18T10:15:29.513 に答える
0

これについての指示をありがとう。

しかし、私はjquery-1.7に行きましたが、それでもオブジェクトを取得するためにグローバル空間から引き出さなければなりませんでした. これは、今のところ私の他のライブラリとその依存関係に当てはまります。私がやったことは、依存関係を持つオブジェクトを返すことでした。order pluginでライブラリのロードを完了しました。

コールバック関数 (jq、pur、jsn など) に渡される依存オブジェクトのコントラクトは、これらのライブラリでは機能しません。定義したモジュール (例: モデル) では機能しますが、外部ライブラリでは機能しません。use pluginを試してみたのですが、アンダースコアやバックボーンでうまくいかなかったり、正しく設定できていなかったりしました。これは今のところ私の実行可能な解決策です。ただし、頭の痛い問題がrequire.jsのメリットを深刻に曇らせていると言わざるを得ません。

    define( [ 'order!js/lib/jquery-1.7',
              'order!js/lib/pure',
              'order!js/lib/json2',
              'order!js/lib/アンダースコア',
              'order!js/lib/backbone',
              'order!bkeeper/models', ]
      (jq、pur、jsn、und、bbn、モデル) ->

        console.log('読み込み中')

        # 依存関係を持つオブジェクトを返す
        モデル : モデル
        jQuery : jQuery.noConflict()
        pure : pur # pure および json2 オブジェクトは、他のライブラリで単純に使用されます。私はそれらを直接必要としません
        json2 : jsn
        アンダースコア: _.noConflict()
        バックボーン : Backbone.noConflict()
    )

于 2012-02-18T16:15:13.987 に答える