由于某些原因,我的收藏品无法呈现。无法找出原因。
TreeItem = Backbone.Model.extend({
});
TreeList = Backbone.Collection.extend({
model: TreeItem,
url: "/get_tree_list"
});
window.tree_list = new TreeList();
// VIEW
window.TreeItemView = Backbone.View.extend({
tagName: 'li',
initialize: function(){
_.bindAll(this, 'render');
},
render: function(){
$(this.el).html('<span>'+this.model.get('title')+'</span>');
return this;
}
});
window.TreeListView = Backbone.View.extend({
el: "#tree-structure",
events: {
},
initialize: function() {
_.bindAll(this, 'appendItem', 'render');
tree_list.bind('add', this.appendItem);
tree_list.fetch();
this.render();
},
render: function() {
tree_list.each(this.appendItem);
return this;
},
appendItem: function(item){
var tree_item_view = new TreeItemView({
model: item
});
$(this.el).append(tree_item_view.render().el);
}
});
var tree_list_view = new TreeListView;
答案 0 :(得分:2)
Backbone.js提供了许多解释,这是人们新出错的地方。你的错误本质上是根本的。您将View直接绑定到模型
请参阅初始化函数,其中呈现了一个集合实例!!
随时随地创建模型,集合然后作为参数传递给视图的构造函数。检查我的小提琴
永远不要在模型,视图或集合中调用渲染。它们必须位于应用程序文件