我正在开始一个骨干项目,我想我会从菜单系统开始。 我的菜单基于多级ul。所以基本上在lis
中有一些嵌套的uls我想知道如何为此创建模型/集合。就此而言,我将如何看待这个观点。我见过人们创建标签类型为li的视图。但我不确定这是怎么回事。
答案 0 :(得分:0)
我个人喜欢使用集合视图和项目视图(防止重新呈现整个列表)
AutoFiler.Views.Messages = Backbone.View.extend({
initialize: function () {
_.bindAll(this, 'render', 'renderItem');
this.collection.bind("reset", this.render);
this.collection.bind('add', this.renderItem);
this.collection.bind('remove', this.render);
},
render: function () {
this.el.empty();
this.collection.each(this.renderItem);
return this;
},
renderItem: function (item) {
var viewC = new AutoFiler.Views.Message({ model: item });
this.el.append(viewC.render().el);
}
});
AutoFiler.Views.Message = Backbone.View.extend({
template: _.template($("#Message-template").html()),
tagName: "li",
initialize: function () {
_.bindAll(this, 'render');
},
render: function () {
$(this.el).html(this.template(this.model.toJSON()));
return this;
}
});
<script id="Message-template" type="text/template">
<div>{{ Subject }}</div>
</script>
<ul id="Messages">
</ul>
给你
<ul id="Messages">
<li><div>Subject A</div></li>
<li><div>Subject B</div></li>
</ul>
您可以通过创建列表集合(集合集合)来嵌套
或者您可以使用类名和深度
进行样式设置 像那样我认为它使代码更容易阅读