我在骨干网中运行这个示例程序。但我得到一个错误,如'无法调用方法'得到'未定义'。到目前为止,我用我所知道的一切来尝试。但我仍然有问题。任何人都可以帮我解决这个问题。
(function(){
//Providing a global scope
window.App = {
Models : {},
Views: {},
Collections: {}
};
window.template = function(id){
return _.template($('#'+id).html());
};
// Declared a Model for Task
App.Models.Task = Backbone.Model.extend({
});
App.Collections.Tasks = Backbone.Collection.extend({
model: App.Models.Task
});
App.Views.Tasks = Backbone.View.extend({
tagName: 'ul',
render: function(){
this.collection.each(this.addOne,this);
},
addOne: function(task){
//creating a child view
var taskView = new App.Views.Task({model: task});
//append it to root element
this.$el.append(taskView.render().el);
}
});
App.Views.Task = Backbone.View.extend({
tagName: 'li',
render : function(){
this.$el.html(this.model.get('title'));
return this;
}
});
var tasksCollection = new App.Collections.Tasks([
{
title: 'Goto Store',
priority: 4
},
{
title: 'Goto Store2',
priority: 5
},
{
title: 'Goto Store3',
priority: 6
},
{
title: 'Goto Store4',
priority: 7
}
]);
var tasksView = new App.Views.Task({collection : tasksCollection});
tasksView.render();
console.log(tasksView.el);
// $(document.body).append(tasksView.el);
})();
答案 0 :(得分:1)
我不知道这是否是印刷错误,但如果没有,您的问题是您在任务视图中设置了您的收藏,而不是在任务视图中
var tasksView = new App.Views.Tasks({collection : tasksCollection});