1

キャッシュをクリアした後のアプリの初期ロード時に、jquery is undefined bc が表示されます。アプリは、jquery がロードされる前に jquery validate をロードしようとしています。更新後、すべてが読み込まれ、正常に動作します。これを正しく設定したと思っていましたが、何か不足していますか? backbone.js、require.js、jquery を使用します。

Main.js:

require.config({
  paths: {
    'jquery': 'libs/jquery/jquery-min',
    'underscore': 'libs/underscore/underscore-min',
    'backbone': 'libs/backbone/backbone-min',
    'validate': 'jquery.validate-1.11.1.min',
    'templates': '../templates'
  },

shim: {
    jquery: {
    exports: "jquery"
  },
    underscore: {
    exports: '_'
  },
  backbone: {
    deps: ['underscore', 'jquery'],
    exports: "backbone"
  },
    validate: {
    deps: ['jquery'],
    exports: "validate"
  }
},

});

require([
  'app'

], function(App){
  App.initialize();
});

App.js

define([
  'jquery', 
  'underscore', 
  'backbone',
  'validate',
  'router',
  'scripts'
], function($, _, Backbone, validate, Router, scripts){
var initialize = function(){
  Router.initialize();
};

return { 
  initialize: initialize
};
});

これが私がファイルを更新したものですが、まだ運がありません:

require.config({
  paths: {
'jquery': 'libs/jquery/jquery-min',
'underscore': 'libs/underscore/underscore-min',
'backbone': 'libs/backbone/backbone-min',
    'validate': 'jquery.validate-1.11.1.min',
'templates': '../templates'
  },

shim: {
    underscore: {
    exports: '_'
  },
  backbone: {
    deps: ['underscore', 'jquery'],
    exports: "Backbone"
  },
    validate: {
    deps: ['jquery', 'backbone'],
    exports: "validate"
  }
}

});

require([
  'app'
], function(App){
  App.initialize();
});

App.js

    define([
  'jquery', 
  'underscore', 
  'backbone',
     'validate',
    'router',
    'scripts'
], function($, _, Backbone, validate, Router, scripts){
  var initialize = function(){
Router.initialize();
  };

 return { 
    initialize: initialize
  };
});
4

5 に答える 5

1

ここから見える jquery validate は、$.validate() によって呼び出されるプラグインです。

このような場合、エクスポートを行う必要はありません。

これが役立つかどうか試してみてください。

   shim: {
        validate: {
            deps: ['jquery']
        }
    }

参照用に同様のスタックオーバーフローの質問を見ることもできます: How to make a jQuery plugin loadable with requirejs

于 2013-06-24T15:57:55.823 に答える