簡體   English   中英

骨干網:收藏集不會重置

[英]Backbone: Collection Won't Reset

我正在嘗試.reset()清除我的collection然后對其調用.fetch()以檢索該頁面的新數據。

但是由於某種原因,當我導航到另一個頁面時,我的collection沒有被重置並獲取新數據。 當我手動重新加載頁面時,它只會重置集合並獲取新數據。

class ProjectPostItemsView extends Backbone.View
  template: JST['project_post_items.ejs']
  posts_item_views: []

  initialize: ->
    super()
    @listenTo( @collection, 'add', @displayPostItem )
    @collection.reset().fetch(add: true)

  displayPostItem: (project) ->
    view = new ProjectPostItemView(model: project)
    @posts_item_views.push( view.on('render', =>
      @$('.post-items').append(view.$('>'))) )

  render: (options) ->
    super(options)

我是Backbone的新手,所以不確定我是否處理正確。 我究竟做錯了什么?

任何幫助表示贊賞。 提前致謝!

與其在獲取之前調用reset,還可以使用以下方法:

 collection.fetch({reset: true});

根據Backbonejs文檔,
“當模型數據從服務器返回時,除非使用{reset:true},否則它將使用set(智能)合並所獲取的模型,在這種情況下,將(有效)重置集合。” http://backbonejs.org/#Collection-fetch

集合的reset函數不會返回集合對象,因此您無法鏈接resetfetch initialize函數的最后一行更改為兩行:

@collection.reset()
@collection.fetch()

注意:沒有理由將{add: true}傳遞給fetch 進入集合的所有新模型都將自動觸發您正在監聽的“添加”事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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