我正在尝试我的第一个骨干项目,我偶然发现了这个:
我有当天的模特和视图(有事件,布局等)。什么是最好的模型MONTH包含一系列天(一个集合或其他东西 - 不确定),除此之外,模型月应该有一些额外的(如:按钮 - 下一个/上个月等)
我可以这样做(某事):month = Backbone.model.extend({
model: {
extras: button_model,
days: day_collection
}
});
或者有更好的方法吗?
由于
答案 0 :(得分:1)
我认为你将模型和收藏的概念混淆了。将模型看作某种事物的单一实例,例如,在您的示例中,一天。如果我们想要获得一组(或集合)天,那么我们使用集合来存储它们。
我们设置了Backbone模型:
DayModel = Backbone.Model.extend({
});
然后我们创建一个Backbone集合,清楚地指定我们想要使用的模型:
MonthCollection = Backbone.Collection.extend({
model: DayModel
});
我们可以创建一个新的DayModel
:
monday = new DayModel({ name: "Monday", dayOfMonth: 12 });
大括号内的 name
是我们为新DayModel
monday
提供的属性。
可以使用以下方法检索这些属性:
monday.get('dayOfMonth');
将返回12
我们现在可以创建MonthCollection
的实例:
july = new MonthCollection();
要将模型添加到集合中(每月的天数),我们只需使用:
july.add(monday);
See this jsFiddle以供进一步参考。
您提到存储在模型中的按钮。在我看来,使用模型来存储这样的元素并不是最好的。相反,您将使用Backbone视图,您可以使用ID或任何此类唯一标识属性填充模型数据并创建按钮,以便选择所需的月份。
请阅读Backbone documentation,以便您更深入地了解Backbone。