Javascript 未捕获类型错误:对象#<;兰帕德>;没有方法';呼叫';
我尝试循环遍历集合,并为集合中的每个模型渲染模板。我做错了什么 顶层视图:Javascript 未捕获类型错误:对象#<;兰帕德>;没有方法';呼叫';,javascript,ruby-on-rails,backbone.js,coffeescript,Javascript,Ruby On Rails,Backbone.js,Coffeescript,我尝试循环遍历集合,并为集合中的每个模型渲染模板。我做错了什么 顶层视图: class App.Views.Content extends Backbone.View className: 'views-container' template: HandlebarsTemplates['app/templates/content'] render: -> @$el.html(@template()) @renderEmptyView() @rend
class App.Views.Content extends Backbone.View
className: 'views-container'
template: HandlebarsTemplates['app/templates/content']
render: ->
@$el.html(@template())
@renderEmptyView()
@renderLanParties()
@
renderEmptyView: ->
v = new App.Views.Empty()
@$('.content-wrapper').html(v.render().el)
renderLanParties: ->
v = new App.Views.LanParties({ collection: new App.Collections.LanParties })
@$('.lan-list').html(v.render().el)
视图渲染集合:
class App.Views.LanParties extends Backbone.View
className: 'lan-parties-list'
template: HandlebarsTemplates['app/templates/lan_parties']
initialize: ->
@listenTo @collection, 'reset', @render()
@collection.fetch({ reset: true })
render: ->
@$el.html(@template())
@collection.forEach @renderLanParty, @
@
renderLanParty: (model) ->
v = new App.Views.LanParty({ model: model })
@$('ul').append(v.render().el)
模型:
class App.Models.LanParty extends Backbone.Model
class App.Collections.LanParties extends Backbone.Collection
model: App.Models.LanParty
url: "/lan_parties"
在App.Views.lan中,参与方不调用@render,change
@listenTo @collection, 'reset', @render()
到
您可能希望在App.Views.Content中实例化新的App.Collections.LanParties
@listenTo @collection, 'reset', @render