我有一个如下所示的使用Coffeescript的集合。在backbone.js中修改集合
class ListCollection extends Backbone.Collection model: List localStorage: new Backbone.LocalStorage("TodoList")
我希望能够动态地改变ListCollection的一个实例的“模式”或“localStorage的”属性。这可能吗?
我有一个如下所示的使用Coffeescript的集合。在backbone.js中修改集合
class ListCollection extends Backbone.Collection model: List localStorage: new Backbone.LocalStorage("TodoList")
我希望能够动态地改变ListCollection的一个实例的“模式”或“localStorage的”属性。这可能吗?
这将是相当简单:
class newClass extends ListCollection
model: somethingElse
我不知道的唯一的事情就是CoffeeScript的类。但通过传递选项对象使用var NewModel = SomeModel.extend()
将覆盖在父级上定义的函数/属性(基本上它会更改/扩展NewModel
的原型)。
结帐这里的文档:http://backbonejs.org/#Model-extend(这与每一个骨干网的目标工作:模型,视图,收藏等)
如果您正在寻找创建不同类型的模型(而不是与不同的集合集合具体型号)。这也许会更适合你:
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")
如果对象添加到集合,它会寻找它的类型属性。然后它会通过一个开关来确定它的类型。这样一个集合可以有不同类型的模型(以及不同的解析器,验证,网址等)
您可以修改原型并解决它,或者只是在构造函数中动态检查 – adrian 2013-02-15 03:21:03