我想我并不完全理解 require.js 的工作方式。这是我创建的一个简单模块:
requirejs.config({
paths: {
'underscore' : 'libs/underscore-min',
'backbone' : 'libs/backbone-min'
}
});
define([
"underscore",
"backbone"
], function(_, Backbone) {
console.log(_);
console.log(Backbone);
var MyCollection = Backbone.Collection.extend({
initialize: function() {
this.on("all", function(event) {
console.log(event);
});
}
});
return MyCollection;
});
我从我的 html 加载它:
<script data-main="js/mycollection.js" src="js/libs/require.min.js"></script>
问题是它间歇性地工作。有时 Backbone 对象在我需要时存在于函数中,有时它没有(并给我http://requirejs.org/docs/errors.html#notloaded错误)。如果我只是在浏览器中点击重新加载,我会得到 50/50 的变化。
我必须在这里遗漏一些非常基本的东西,报告的错误对我没有任何意义,我认为 require.js 机制的整个想法是只有在加载所有依赖项时才会调用我的函数。