我有一个 Backbone Marionette 应用程序,它允许用户使用各种标准进行搜索。从搜索结果中,他们可以单击一个链接,将他们从主干应用程序导航到标准静态页面。
我该如何设置,以便当他们在浏览器中单击返回时,主干搜索页面恢复到以前的状态(搜索条件和结果完好无损)?
谢谢
我有一个 Backbone Marionette 应用程序,它允许用户使用各种标准进行搜索。从搜索结果中,他们可以单击一个链接,将他们从主干应用程序导航到标准静态页面。
我该如何设置,以便当他们在浏览器中单击返回时,主干搜索页面恢复到以前的状态(搜索条件和结果完好无损)?
谢谢
您可以将骨干路由器用于搜索页面并将状态保存在 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)
}
所以然后用户点击/或在您的搜索字段中按回车键,您应该触发路线更改:yourRouter.navigate("search/query/"+yourQuery, {trigger: true})