0

何らかの理由でRequireJSを理解できないようです(他のさまざまな質問を見て)

背景:

  • 私はjqueryを使用しています(Node.jsの自動ビルドはありません)
  • クライアント側の mVC lib ライブラリ (spine.js) を使用しています。これは、セットアップの一部として、私の場合はrequire("Avail")コードの奥深くで実行されます。
  • 「Avail」は、window.Avail としてグローバルに存在する JavaScript クラスです。

エラーメッセージが表示されます

Uncaught Error: Module name 'Avail' has not been loaded yet for context: _ http://requirejs.org/docs/errors.html#notloaded

ロードされていないことがわかりましたが、どうすればいいですか?アプリの起動時にデフォルトのコンテキスト「_」で「Avail」を登録するようにrequireJSに指示する方法はありますか?

私は以下のようないくつかのことを試しました(そしてそれに関する多くのバリエーションがありますが、私はそれを動作させることができません):

    (function() {   
       define("Avail", [],function(){
           return window.Avail
       });
     })();

大変助かりました。ありがとう。

4

1 に答える 1

0

コード内の Spine.js は既に「models/Avail」で require を行っていましたが、「models/Avail」でも自分で require を行う必要があることが判明しました。

ファイル:spine.models.coffee

class Avail extends Spine.Model
@configure 'Avail'

define "models/Avail", ->
  Avail

ファイル: main.html

  require(["jquery","models/Avail"], function($) {
    $(function() {
       new Spine.App();
    })
  });
于 2011-12-16T11:06:30.250 に答える