Javascript 重置/清除主干集合
我正在获取一个搜索表单的主干集合。我想我希望在每次搜索后重置集合,因为当前搜索结果只是将新结果附加到以前的结果 目前,@collection.reset()完全不做任何事情Javascript 重置/清除主干集合,javascript,backbone.js,Javascript,Backbone.js,我正在获取一个搜索表单的主干集合。我想我希望在每次搜索后重置集合,因为当前搜索结果只是将新结果附加到以前的结果 目前,@collection.reset()完全不做任何事情 class ****.Views.DesignerSearchView extends Marionette.CompositeView className: 'tab_pane' id: 'search_items' template: JST['designer/DesignerSearchTempla
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)
})
编辑
根据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)
})
及
但是仍然没有运气您有两个选择:
谢谢你的帮助,但两人似乎都没用。我可能做错了吗?我只是想确定一下,因为问题不是100%清楚,问题是搜索结果保存在集合中或您的复合视图中?可能您是CompositeView,当您
reset()
集合时,它没有删除子项。您应该在success
处理程序上console.log(collection.toJSON())
检查集合上是否有以前的模型。
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)
})