[英]Why isn't my Backbone Collection reset event firing?
我完成了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生成的所有樣板。
您太早調用fetch()
了-在路由器創建中。 應該改為在特定的路由代碼中調用。 您實現它的方式,獲取和重置的方法可能會在觸發路由之前完成,因此您將在觸發它之后開始偵聽reset
我是個白痴。 在Shsh.Views.AssetsIndex中,初始化拼寫錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.