我花了几个小时试图弄清楚为什么我的代码不能正常工作,因为它应该基于我试图遵循的几个教程。事情就是这样。许多关于在 Backbone 中使用 Require.js 的教程和文章的代码如下所示:
define(["jquery", "underscore", "backbone"], function($, _, Backbone){
return function(){
/* Some instantiation of Backbone stuff */
};
});
当我尝试运行此代码时,控制台会显示“Backbone is undefined”。奇怪的是 jQuery 对象被成功实例化为 $. 只是未定义的“_”和“Backbone”。所以我做了一些搜索,发现了 use.js
我被告知 use.js 的诞生是因为 Backbone 的主要贡献者不想更改 Backbone.js 的代码只是为了使其适合 require.js,我理解。所以我尝试使用 use.js 在 require 的配置中指定 Backbone 的依赖项设置,如下所示:
require.config({
use: {
'backbone': {
'deps': ['use!underscore', 'jquery'],
'attach': 'Backbone'
},
'underscore': {
'attach': '_'
}
}
});
在添加此代码并从原始定义中调用 'use!backbone' 而不是要求 'underscore' 和 'backbone' 之后,它终于可以工作了。但我不明白这里发生了什么。如果我必须完成所有这些工作才能使 Backbone 工作,为什么所有那些文章和教程都没有提到这个事实?几乎就像他们的版本没有做这一切就可以正常工作。有什么改变吗?
这也是使用 require.js 处理 Backbone 的唯一方法吗?有没有更简单的方法?(最新的方法)