2013-05-19 86 views
2

加載entries/index時,它應激發@collection.each(@appendEntry)並將集合中的所有條目追加到#entries,但沒有任何反應。如果我提交一個新的條目,一切工作正常。主幹視圖方法在第一次加載時未觸發

entries_index.js.coffee

class Raffler.Views.EntriesIndex extends Backbone.View 

    template: JST['entries/index'] 

    events: 
    'submit #new_entry': 'createEntry' 

    initialize: -> 
    @collection.on('add', @render, this) 

    render: -> 
    $(@el).html(@template(collection: @collection)) 
    @collection.each(@appendEntry) 
    this 

    appendEntry: (entry) -> 
    view = new Raffler.Views.Entry() 
    $('#entries').append(view.render().el) 

    createEntry: (event) -> 
    event.preventDefault() 
    @collection.create name: $('#new_entry_name').val() 

這到底是怎麼回事?

+0

我不知道關於咖啡腳本語法,而是如何'被傳遞給'appendEntry'的入口參數被使用? – Cyclone

回答

0

嘗試在initialize內撥打電話render

@collection.each(@appendEntry)位於您的渲染函數中,在您的視圖中initialize期間未被您的視圖調用。

,你可以看到它添加的項目是,呈現每個項目添加到您的收藏時間被調用,通過結合後的原因:@collection.on('add', @render, this)

相關問題