Ruby on rails 在主干中获取集合的时间为零
编辑方法Ruby on rails 在主干中获取集合的时间为零,ruby-on-rails,backbone.js,coffeescript,Ruby On Rails,Backbone.js,Coffeescript,编辑方法 editCollection: (event) -> @collection = new BackboneDemo.Collections.Backbonescripts() @collection.url = "/demos/#{event.target.id}/test" @collection.fetch() @collection.on('sync', @selectCheckbox(event), this) selectCheckbox: (even
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);
我甚至试着使用重置和成功的提取…但长度是零
我知道背骨是懒惰的
如何使用“等待提取完成…”?替换以下位置的行:
editCollection: (event) =>
. . .
selectCheckbox: (event) =>
. . .
这是一个函数调用:
@collection.on('sync', @selectCheckbox(event), this)
# ---------------------^^^^^^^^^^^^^^^^^^^^^^
您正在调用@selectCheckbox
并将其返回值传递给@collection。在
上,就像您说的那样:
x = @selectCheckbox(event)
@collection.on('sync', x, this)
因此,在'sync'
事件发生之前,您正在调用@selectCheckbox
。我想你应该这样说:
@collection.on('sync', @selectCheckbox, @)
# ---------------------^^^^^^^^^^^^^^^ Now just a function reference
此外,还应注意selectCheckbox
或@集合中的缩进。每个都将使用一个空函数进行迭代:
selectCheckbox: (event) ->
console.info @collection.length
@collection.each (test) ->
$("##{event.target.id}.test ##{test.get('id')}.test_checkbox").prop('checked', true)