簡體   English   中英

在fetch收集中,骨干網的數量為零

[英]on fetch collection is getting zero in backbone

編輯方法

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.on就像您這樣說:

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

因此,您需要在'sync'事件發生之前調用@selectCheckbox 我想你想這樣說:

@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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM