【发布时间】:2012-01-25 17:33:30
【问题描述】:
新手主干问题:
上下文:建立一个有骨干的购物清单
我有一个带有名称、描述和标签(数组)属性的模型类。 我想基于这个模型或这个模型的集合创建两个视图。
第一个视图将显示所有项目,如下所示:
<ul>
<li><h3>Item 1 Name</h3>
<p>Item 1 Description</p>
<p>Tag1, Tag2 ,Tag3</p>
</li>
.......
</ul>
第二个视图将显示标签列表和标记项目的数量,如下所示:
<ul>
<li>Tag1<span>{count of items tagged with tag1}</span></li>
<li>Tag2<span>{count of items tagged with tag2}</span></li>
<li>Tag3<span>{count of items tagged with tag3}</span></li>
</ul>
我构建了模型、集合和视图来支持第一个视图。我想知道使用现有模型(或创建新模型?)构建第二个视图的正确方法。
提前谢谢...
现有的 Item 模型和集合(从 Todo.js 示例中提取)
window.Item = Backbone.Model.extend({
// Default attributes for a todo item.
defaults: function() {
return {
order: Items.nextOrder()
};
}
});
window.ItemList = Backbone.Collection.extend({
model: Item,
localStorage: new Store("items"),
nextOrder: function() {
if (!this.length) return 1;
return this.last().get('order') + 1;
},
comparator: function(item) {
return item.get('order');
}
});
更新:尽管在显示带有项目计数的标签名称时覆盖 parse() 方法有效,但在添加新项目后我无法刷新标签名称/项目计数列表。这可能是由于视图是从不同的集合呈现的。我将尝试扩展 ItemList 集合并覆盖 parse() 方法。非常感谢任何帮助。
【问题讨论】: