我有一个Backbone Marionette应用程序,允许用户使用各种标准进行搜索。从搜索结果中,他们可以点击链接,将其从骨干应用程序导航到标准静态页面。
如何进行设置,以便当他们在浏览器中单击时,骨干搜索页面将恢复到之前的状态(搜索条件和结果完好无损)?
由于
答案 0 :(得分:0)
您可以将脊椎路由器用于搜索页面并将状态保存在location.hash中,这样所有填充/渲染都将由路由器或视图管理,这些路由器或视图将监听路由器事件:
“route:[name]”(params) - 在匹配特定路由时由路由器触发。
“route”(route,params) - 路由器在匹配任何路由时触发。
例如#search / query / nuggets将触发此路线:
'search/query/:query-string': function(query) {
yourCollection.fetch({data: {query: query}})
}
并在您的视图中
initialize: function() {
this.listenTo(yourCollection, 'sync', this.render)
}
然后用户点击/或在搜索字段中按Enter键,您应该触发路线更改:yourRouter.navigate("search/query/"+yourQuery, {trigger: true})