2013-05-19 4 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

,하지만 어떻게' entry '인자가 appendEntry에 전달 되는가? – Cyclone

답변

0

render으로 전화하여 initialize에 연락하십시오.

@collection.each(@appendEntry)은 렌더링 기능 내에 있으며 initialize 동안보기에 의해 호출되지 않습니다.

당신이 바인딩을 통해 항목을 컬렉션에 추가 될 때마다 호출되는 것을 렌더링되는 항목을 추가 한 후 그것을 볼 수있는 이유는 내가 커피 스크립트 구문에 대한 확실하지 않다 @collection.on('add', @render, this)

관련 문제