构建一个月内的天数的最佳方法是什么(主干日历)

时间:2013-05-27 16:53:27

标签: backbone.js model structure

我正在尝试我的第一个骨干项目,我偶然发现了这个:

我有当天的模特和视图(有事件,布局等)。什么是最好的模型MONTH包含一系列天(一个集合或其他东西 - 不确定),除此之外,模型月应该有一些额外的(如:按钮 - 下一个/上个月等)

我可以这样做(某事):

month = Backbone.model.extend({
    model: {
        extras: button_model,
        days:   day_collection
    }
});

或者有更好的方法吗?

由于

1 个答案:

答案 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。