骨干.js和要求.js
Backbone.js and Require.js
我想用Require.js创建Backbone.js应用程序。但是我在控制台中有一个错误:未捕获的错误:尚未加载上下文的模块名称"下划线":_。使用要求([])
require.config({
baseUrl: 'js/',
paths : {
'jquery' : 'jquery',
'underscore' : 'underscore',
'backbone' : 'backbone',
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
}
}
}
});
define('app', ['jquery','backbone', 'underscore'], function ($, Backbone, _){
var Model = Backbone.model.extend({});
var model = new Model;
});
require(['app','jquery', 'backbone', 'underscore']);
如何解决此问题?
您仍然需要将underscore
列为paths
的一部分,以便您可以在填充码中引用它。 另外,不确定您的目录结构是什么样子的,但我在编写本文时假设库代码位于/js/libs
目录中)。 最后,请注意,您不需要require
app
的任何依赖项 - RequireJS的乐趣在于它会弄清楚要加载的内容。
所以。。。
require.config({
baseUrl: 'js/',
paths : {
'jquery' : 'lib/jquery',
'underscore' : 'lib/underscore',
'backbone' : 'lib/backbone',
},
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
}
}
});
define('app', ['jquery','backbone', 'underscore'], function ($, Backbone, _){
var Model = Backbone.Model.extend({});
var model = new Model({
foo: 'bar'
});
var app = {
model: model
};
// ...
return app;
});
require(['app'], function(App) {
App.model.get('foo'); // <<=== returns 'bar'
});
填充程序在路径对象中提及。我不确定这是否是问题所在,但想在这里提及这一点。
您需要下划线.js如 require 语句中所列。
相关文章:
- 骨干模型默认值-todos.js示例中不必要的代码
- 如何按骨干.js打印“此”列表项的文本
- 将 HTML 表的 元素指定为“骨干.js木偶”中的区域
- 在骨干.js和赛库触发事件
- 转到其他 URL 后,如何保持排序的骨干.js集合
- 骨干.js - 从推文中删除模型时出现奇怪的问题
- 骨干.js集合筛选前 10 个模型
- 骨干.js具有多种排序的集合
- 显示骨干js过滤器
- 骨干js-json收集结果
- 骨干.js推状态为真
- 骨干.js模型中的几个问题
- 为什么我的骨干.js集合重置只是添加 1 个模型
- 骨干.js和要求.js
- 骨干.js 3路模型同步
- 需求.js + 骨干优化
- 骨干.js两个层次的集合
- 如何在木偶.js+骨干中加载HTML文件
- 需要 js 骨干 JS 全局模型
- 使用带有下划线循环的回调函数.js骨干.js项目不起作用