1

我有一个 Backbone Marionette 应用程序,它允许用户使用各种标准进行搜索。从搜索结果中,他们可以单击一个链接,将他们从主干应用程序导航到标准静态页面。

我该如何设置,以便当他们在浏览器中单击返回时,主干搜索页面恢复到以前的状态(搜索条件和结果完好无损)?

谢谢

4

1 回答 1

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)
}

所以然后用户点击/或在您的搜索字段中按回车键,您应该触发路线更改:yourRouter.navigate("search/query/"+yourQuery, {trigger: true})

于 2013-10-11T10:44:39.920 回答