我浏览了 Railscast 教程,一切正常。制作一个快速原型以查看 Backbone 是否可行,但我搞砸了一些东西,我不确定我做错了什么。我在主干 1 上。
看法
class Shsh.Views.AssetsIndex extends Backbone.View
template: JST['assets/index']
initalize: ->
@collection.on('reset', @render, this)
render: ->
$(@el).html(@template(assets: @collection))
console.log('rendered')
this
路由器
class Shsh.Routers.Assets extends Backbone.Router
routes:
'': 'index'
initialize: ->
@collection = new Shsh.Collections.Assets()
@collection.fetch({reset: true})
index: ->
view = new Shsh.Views.AssetsIndex(collection: @collection)
$('#container').html(view.render().el)
视图渲染得很好,但@assets 的长度返回为 0。我可以通过控制台中的步骤,当我再次渲染视图时,它返回为正确的长度。我究竟做错了什么?
编辑:
我实际上也有一个集合和模型。那里的代码都是由 Backbone On Rails 生成的样板文件。