1
我對rails3.2工作循環,並利用CoffeeScript的對於CoffeeScript中
在我的CoffeeScript我有一個for循環,併爲每個,我執行API調用來獲取結果和將結果追加到各自的DOM
像
for ajaxLink in _ajaxRenderLinks
_template = $(ajaxLink).attr('data-link-template')
apiURL = $(ajaxLink).attr('data-link-url')
console.log($(ajaxLink))
Myapp.API.execute(apiURL, 'get', {}, (data) ->
console.log($(ajaxLink))
if data isnt "" or data isnt undefined
console.log($(ajaxLink))
$(ajaxLink).empty()
$(ajaxLink).append($(HandlebarsTemplates[Myapp.TemplateRoutes.path(_template)](data))))
在上面的代碼,我有兩條鏈路(一個是一個鏈接,另一個是UL鏈路) ajaxRenderLinks具有這些一個和UL具有其模板來呈現和鏈接直接取得結果。 第一個console.log打印第一個鏈接a,然後爲其運行API調用,然後運行它的APi調用 ,然後打印第二個鏈接ul併爲其運行API CALl。最後它會嘗試追加第二個鏈接的最後結果,而不是爲每個鏈接添加附加內容,因爲如果data isnt「」或數據isnt未定義,那麼它內部的ajaxLink僅打印第二個鏈接,而不打印第一個鏈接,然後打印第一個鏈接,然後打印第二個鏈接
如何解決這個
+1了這一點。有關在具有異步行爲的循環中使用'do'的更多信息,請參閱我的文章[CoffeeScript Intervention](http://pragprog.com/magazines/2011-05/a-coffeescript-intervention)。 –
@TrevorBurnham謝謝!來自字面上寫這本書的人(我發誓,我一直有意讀!),這是一個強大的+1! :) – Flambino
@Flambino謝謝 – useranon