0

私はrequirejsで依存関係をロードするのに問題があったので、私の問題を示す最も単純な構造を再作成しようとしました. html ファイルには、ページの読み込み後にデータを入力したいブートストラップの先行入力ボックスが含まれています。私の main.js スクリプトが次の場合:

requirejs.config({
  paths: {
    jquery: 'libs/jquery/jquery-min',
    bootstrap: 'libs/bootstrap/bootstrap.min',
    underscore: 'libs/underscore/underscore-min',
    backbone: 'libs/backbone/backbone-optamd3-min',
    cs: 'libs/require/cs',
    'coffee-script': 'libs/coffeescript/coffee-script'
  },
  shim: {
    bootstrap: {
      deps: ['jquery']
  }
});

require(['cs!router']);

私のバックボーン エントリ ポイントは非常に単純なルーターです。

define ['jquery','underscore','backbone','bootstrap'], ($, _, Backbone) ->

  AppRouter = Backbone.Router.extend

    initialize: () ->
      @data = ['one','two','three']

    routes: '': 'index'

    index: () ->
      $('.typeahead').typeahead({source:@data})

  app_router = new AppRouter
  Backbone.history.start()

その後、クリーニングされた Web キャッシュからページが読み込まれると、コンソールに次のエラーが表示されます。

TypeError: a は関数ではありません

TypeError: $(".typeahead").typeahead は関数ではありません

エラー: モジュールの読み込みタイムアウト: cs!router http://requirejs.org/docs/errors.html#timeout

ページをリロードするだけで、すべてのエラーが消え、すべて正常に動作します。誰かがここで何が起こっているのか説明してくれたら本当にありがたいです、ありがとう。

4

1 に答える 1

0

わかりました、使用して修正しました

<script data-main="js/main" src="js/libs/require/require-jquery.js"></script>

それ以外の

<script data-main="js/main" src="js/libs/require/require.js"></script>

メインのhtmlファイルに.

于 2012-11-14T09:48:49.193 に答える