在我的 Backbone 应用程序中,在搜索结果页面上,我有指向 #show 操作的链接。此显示操作将显示指定的模型。
- 搜索结果 URI
/search
- 指定的模型 URI
/:modelName/:viewName/:id
(如您所见,我还将 modelName 和 viewName 作为参数传递给路由器操作)
当用户在显示页面上时,他应该可以选择返回搜索结果(例如:按钮“返回搜索结果”)。搜索结果有分页,因此一次又一次地获取它们是不明智的。获取记录也会丢失collection
状态。
我想记住搜索结果。
这是搜索代码(Backbone.Router
操作)
search: (query) =>
sentencesCollection = new SI.Collections.Sentences()
searchParamSets = new SI.Collections.SearchParamSets()
sentencesView = new SI.Views.SentencesSearchForm(
collection: sentencesCollection
searchParamSets: searchParamSets
)
resultsView = new SI.Views.SearchResults(
collection: sentencesCollection
searchParamSets: searchParamSets
viewName: "SentencesShow"
)
@searchView.show(sentencesView)
@contentView.show(resultsView)
@sidebarView.show(new SI.Views.SentencesSearchFilters(
searchParamSets: searchParamSets
))
new SI.Views.SearchParamSets(collection: searchParamSets)
if query?
searchParamSets.reset({name: query})
sentencesView.appendSearchSetAndGetSentences()
如果用户单击“返回”按钮,将触发search
操作。Router
我想使用相同的对象,而不是再次重新创建它们。所以基本上这段代码需要重构。
我的问题:
如何记住搜索结果?