【发布时间】:2011-12-22 18:11:04
【问题描述】:
我有以下 HTML 代码:
<ul id='item-list'></ul>
<button id='add-item'>Add Item</button>
<script type='text/template' id='item-template'>
<li><%= title %></li>
</script>
以及以下 javascript/backbone js 代码:
var Item = Backbone.Model.extend({});
var ItemCollection = Backbone.Collection.extend({
model: Item
});
var ItemListView = Backbone.View.extend({
el : $("#item-list"),
initialize(options) {
this.item_collection = new ItemCollection();
},
appendItem: function() {
new_item = new Item({'title' : 'New Item'});
this.item_collection.add(new_item);
item_template = $("#item-template");
item_html = _.template(item_template,new_item.toJSON());
this.el.append(item_html);
}
});
var AddItemView = Backbone.View.extend({
el: $("add-item"),
events: {
"click" : "addItem"
},
addItem: function() {
// ?
}
});
item_list_view = new ListItemView();
add_item_view = new AddItemView();
如何从 addItemView 视图中的事件将新项目添加到项目列表视图和集合?此外,模型的创建、将其附加到集合以及将其附加到视图都应该在 ListItemView.addItem() 函数中进行,还是应该将其绑定到 ItemCollection 的 add 事件?我仍然无法理解绑定的方式以及各种视图、模型和集合之间的交互应该如何工作。
【问题讨论】:
标签: javascript model-view-controller backbone.js