Backbone.js 不同文件中的模型/视图
我只是尝试在我的项目中采用backbone.js和todo示例。在我的app.js文件中,我试图实例化我的视图/模型/集合等,但我试图得到错误消息:TodoList中未定义app HTML: collections.js:Backbone.js 不同文件中的模型/视图,backbone.js,Backbone.js,我只是尝试在我的项目中采用backbone.js和todo示例。在我的app.js文件中,我试图实例化我的视图/模型/集合等,但我试图得到错误消息:TodoList中未定义app HTML: collections.js: app.collections.TodoList = Backbone.Collection.extend({ model: Todo, localStorage: new Store("todos"), done: function() { return th
app.collections.TodoList = Backbone.Collection.extend({
model: Todo,
localStorage: new Store("todos"),
done: function() {
return this.filter(function(todo) {
return todo.get('done');
});
},
remaining: function() {
return this.without.apply(this, this.done());
},
nextOrder: function() {
if (!this.length) return 1;
return this.last().get('order') + 1;
},
comparator: function(todo) {
return todo.get('order');
}
})) 您试图在名称空间准备就绪之前使用它。两种选择。首先,先使用'app.js',然后取出初始化代码并将其放入最后加载的'bootstrap.js'中。第二个选项,也是我通常不喜欢的选项,定义文件中所需的名称空间(如果它们还不存在的话)。比如说
var app = app || {};
app.collection = app.collection || {};
基本上,代码是一个接一个地加载的。当您说namespace.subspace时,代码期望名称空间已经被定义为某种东西——通常是我见过的大多数情况下的对象。如果没有这一基础部分,代码将只是一条直线——它将假定您正在尝试从屋顶开始建造一座城堡
app.collections.TodoList = Backbone.Collection.extend({
model: Todo,
localStorage: new Store("todos"),
done: function() {
return this.filter(function(todo) {
return todo.get('done');
});
},
remaining: function() {
return this.without.apply(this, this.done());
},
nextOrder: function() {
if (!this.length) return 1;
return this.last().get('order') + 1;
},
comparator: function(todo) {
return todo.get('order');
}
var app = app || {};
app.collection = app.collection || {};