Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将主干模型插入子集合?_Javascript_Backbone.js_Coffeescript - Fatal编程技术网

Javascript 如何将主干模型插入子集合?

Javascript 如何将主干模型插入子集合?,javascript,backbone.js,coffeescript,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 代码: 错误消息(在“控制器”上使用.each

型号:

收藏:

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

class Controller extends Backbone.Model
代码:

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

TypeError:对象[Object],对象[Object]没有方法“each”


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

您正在用数组替换属性
控制器
。由于它是一个集合,您需要使用
添加
重置
,具体取决于您想要执行的操作。

是的。我意识到了这一点。但是如何在模型的属性上使用add-on呢?用javascript术语:
device.get('controllers').add([{…}])
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]