我最近希望我的emberjs应用程序中的某些路径不会显示在浏览器历史记录中,并尝试利用RC1中引入的replaceRoute功能。不幸的是,如果我使用transitionToRoute或replaceRoute,它根本没有任何区别。 假设我有3页,我希望在回到历史记录时跳过第1页。
App = Ember.Application.create({});
App.ApplicationRoute = Ember.Route.extend({
events: {goBack:function(){window.history.back();}}
});
App.Page1Controller = Ember.Controller.extend({
goToPage2: function(){
this.replaceRoute("page2")
}
});
App.Router.map(function() {
this.route("page1");
this.route("page2");
this.route("page3");
});
我做了一个用于测试http://jsfiddle.net/ripcurlx/Qmnrj/3/
的JSFiddle示例我使用完全错误的replaceRoute,还是有更好的解决方案来阻止某些路由不包含在浏览器历史记录中? 谢谢你的任何提示!
答案 0 :(得分:0)
不幸的是,这仅适用于location: "history"
。浏览器不支持更新哈希值而不影响历史记录,而在使用历史记录状态时,我们可以使用提供的replaceState
方法。