2014-01-07 50 views
0

编辑方法上取收集越来越零骨干

editCollection: (event) -> 
    @collection = new BackboneDemo.Collections.Backbonescripts() 
    @collection.url = "/demos/#{event.target.id}/test" 
    @collection.fetch() 
    @collection.on('sync', @selectCheckbox(event), this) 

selectCheckbox: (event) -> 
    console.info @collection.length 
    @collection.each (test) -> 
    $('#'+event.target.id+'.test #'+test.get('id')+'.test_checkbox').prop('checked', true); 

我甚至试图使用复位和的获取成功......但长度为零

我知道,回骨延迟加载

如何使用等待直到获取完成......?

回答

0

更换这些线路:

editCollection: (event) => 
    . . . 
selectCheckbox: (event) => 
    . . . 
+0

我不这样认为,这将有助于....问题是骨头是懒加载 – user3134821

0

这是一个函数调用:

@collection.on('sync', @selectCheckbox(event), this) 
# ---------------------^^^^^^^^^^^^^^^^^^^^^^ 

你打电话@selectCheckbox并通过其返回淡水河谷@collection.on好像你这样说:

x = @selectCheckbox(event) 
@collection.on('sync', x, this) 

所以你打电话@selectCheckbox之前的'sync'事件发生。我想你要这样说:

@collection.on('sync', @selectCheckbox, @) 
# ---------------------^^^^^^^^^^^^^^^ Now just a function reference 

此外,你应该小心你的压痕的内部selectCheckbox或您的@collection.each将一个空的功能迭代:

selectCheckbox: (event) -> 
    console.info @collection.length 
    @collection.each (test) -> 
    $("##{event.target.id}.test ##{test.get('id')}.test_checkbox").prop('checked', true)