加载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 :(得分:0)
尝试在render
内调用initialize
。
@collection.each(@appendEntry)
位于您的渲染函数中,initialize
期间您的视图未调用该函数。
添加项目后可以看到它的原因是每次通过绑定将项目添加到集合时都会调用渲染:@collection.on('add', @render, this)