【发布时间】:2013-09-29 06:52:15
【问题描述】:
假设我有一个允许过滤一组项目的网络应用程序,并说我在网络前端使用了主干.js。
很自然地,我最终创建了一个扩展 Backbone.Model 的 Filter 和一个扩展 Backbone.Collection 的 SearchResultList >。过滤器有一些属性,如 searchTerm、dataFrom、dateTo...过滤器还有一个称为applyFilter 的方法。 Filter.applyFilter 应该调用searchResultList.fetch,从而更新/过滤搜索结果。
问题是,如何最好地将searchResultList 初始化为Filter 的属性,而不是Backbone 术语中的属性?
我不想在Filter.initialize 中创建SearchResultList,因为SearchResultList 不一定由Filter“拥有”。
现在我最终将searchResultList 对象作为option 传递给Filter.initialize,但这对我来说有点尴尬。
我怀疑让Filter.applyFilter 调用SearchResultList.fetch 是个好主意。但是,需要有一个Filter 的方法,当它被调用时会以某种方式触发一个新的请求。 (监听Filter 的更改事件也不是一个选项,因为用户应该在多个步骤中更改过滤器选项并决定通过单击按钮手动应用过滤器)
【问题讨论】:
标签: backbone.js