如何将骨干模型插入子集合中?

时间:2012-06-18 21:19:06

标签: javascript backbone.js coffeescript

型号:

class Device extends Backbone.Model
    url: '/device'
    initialize: ->
        console.log "Device model created..."
        @set
            controllers: new Controllers

class Controller extends Backbone.Model

收集:

class Controllers extends Backbone.Collection
    model: Controller

代码:

device = new Device
controller = new Controller
controller1 = new Controller
controller.set
   name: "state1"
   value: "on"
controller1.set
   name: "state2"
   value: "on"
device.set 
   id: 1
   name: "foo"
   controllers: [controller, controller1]

错误消息(在“控制器”上使用.each时):

  

TypeError:Object [object Object],[object Object]没有方法'each'

这个想法是每个设备都拥有一个控制器的子集合。我的简单问题是如何将模型添加到此子集合中?上面的代码似乎用数组覆盖了集合......

1 个答案:

答案 0 :(得分:2)

您正在使用controllers替换属性array。由于它是一个集合,您需要使用addreset,具体取决于您要执行的操作。