0
我有這樣的代碼中的CoffeeScript:爲什麼在_.each循環重載循環中獲取集合?
render: (collectionName)=>
console.log "I am rendering"
@buildBreadcrumb(collectionName)
buildBreadcrumb: (collectionName) ->
i=0
_.each @urlParts, (url_part) =>
i++
console.log('value of i : ',i)
collection = @getCollection(collectionName)
if (collection.length == 0)
collection.fetch({
success: (collection) =>
@render()
})
else
@appendBreadcrumb()
而且我不明白爲什麼,有時候,我得到了一個輸出爲:
I am rendering
value of i : 1
value of i : 2
value of i : 3
/* STRANGE START HERE */
value of i : 2
value of i : 3
如果我刪除@render這個問題消失()取得成功。這就像_each循環再次啓動... 但爲什麼?
如果我把@render放在「complete」回調上,一切正常。
render: (route)=>
console.log "I am rendering"
@buildBreadcrumb()
buildBreadcrumb: ->
i=0
_.each @urlParts, (url_part) =>
i++
console.log('value of i : ',i)
collection = Proscale.Collections.getCollection(collectionName)
collection.fetch({
complete: (collection) =>
@render()
})
爲什麼你寫的渲染:(集合名)=>,它應該呈現:()=>在你的代碼 –
你叫@buildBreadcrumb遞歸.. –
是,這是因爲我簡化了stackoverflow的代碼。實際上,只有在收藏品爲空的情況下才能獲取。 – Sebastien