1

我有一个使用 Coffeescript 的集合,如下所示。

class ListCollection extends Backbone.Collection
    model: List
    localStorage:
        new Backbone.LocalStorage("TodoList")

我希望能够动态更改 ListCollection 实例的“模型”或“localStorage”属性。这可能吗?

4

2 回答 2

0

如果您希望创建具有不同类型模型的集合(而不是具有特定模型的不同集合)。也许这更适合你:

class ListCollection extends Backbone.Collection
    model: (attrs, options) ->
       switch attrs.type
          when "car"
              new Car(attrs, options)
           else
              new Bus(attrs, options)
    localStorage:
        new Backbone.LocalStorage("TodoList")

如果将对象添加到集合中,它将查找它的类型属性。然后它将通过一个开关来确定它的类型。这样,单个集合可以有不同类型的模型(以及不同的解析器、验证、url 等)

于 2013-02-15T08:55:49.020 回答
0

这将相当简单:

class newClass extends ListCollection
    model: somethingElse

我唯一不确定的是咖啡脚本类。但是var NewModel = SomeModel.extend()通过传递选项对象来使用将覆盖在父级上定义的函数/属性(基本上它会更改/扩展 的原型NewModel)。

在此处查看文档:http: //backbonejs.org/#Model-extend(这适用于每个 Backbone 对象:模型、视图、集合等)

于 2013-02-15T03:13:48.010 回答