0

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

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

我可以这样做(某事):

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

?

或者,还有更好的方法?

谢谢

4

1 回答 1

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);

请参阅此 jsFiddle以获取更多参考。


您提到存储在模型中的按钮。在我看来,最好不要使用模型来存储这样的元素。相反,您将使用一个 Backbone 视图,您将使用模型数据填充该视图,并使用 ID 或任何此类唯一标识属性创建按钮,以便选择您想要的月份。

请阅读Backbone 文档,让您更深入地了解 Backbone。

于 2013-05-28T16:23:51.770 回答