簡體   English   中英

為什么我的Backbone Collection重置事件未觸發?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM