重置/清除Backbone集合

时间:2014-09-08 16:39:51

标签: javascript backbone.js

我正在为搜索表单提取主干集合。我想我想在每次搜索后重置集合,因为目前搜索结果只是将新结果附加到之前的结果中。

目前@ collection.reset()完全没有。

class ****.Views.DesignerSearchView extends Marionette.CompositeView

  className: 'tab_pane'

  id: 'search_items'

  template: JST['designer/DesignerSearchTemplate']


  itemView: (obj) ->
    new Mywebroom.Views.DesignerSearchItemsLayout(obj)

  itemViewContainer: "div"

  events: {
    'keyup #designer_search': 'search'
    'click .fa-times ': 'clearSearch'
  }

  initialize:->

    @collection = new Mywebroom.Collections.SearchItems()


  search: ->

    searchTerm = $('#designer_search').val()

    @collection.reset()
    @collection.fetch({
      data: $.param({ search : searchTerm })

      async: false
      success: (collection, response, options) ->
        console.log("designs fetch success", response)

      error: (collection, response, options) ->
        console.error("designs fetch fail", response.responseText)
    })

修改

Per CharlieBrowns的建议:

search: ->

    searchTerm = $('#designer_search').val()

    @collection.fetch({
      data: $.param({ search : searchTerm })

      async: false
      reset: true
      success: (collection, response, options) ->
        console.log("designs fetch success", response)

      error: (collection, response, options) ->
        console.error("designs fetch fail", response.responseText)
    })

search: ->

    searchTerm = $('#designer_search').val()

    @collection.reset([])
    @collection.fetch({
      data: $.param({ search : searchTerm })

      async: false
      success: (collection, response, options) ->
        console.log("designs fetch success", response)

      error: (collection, response, options) ->
        console.error("designs fetch fail", response.responseText)
    })

但仍然没有运气

1 个答案:

答案 0 :(得分:1)

您有两种选择:

  1. 使用collection.reset([])重置集合并添加0个新模型。
  2. 使用collection.fetch({reset:true})重置每次提取的集合。