replaceRoute没有按预期工作?

时间:2013-05-14 18:17:42

标签: ember.js

我最近希望我的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,还是有更好的解决方案来阻止某些路由不包含在浏览器历史记录中? 谢谢你的任何提示!

1 个答案:

答案 0 :(得分:0)

不幸的是,这仅适用于location: "history"。浏览器不支持更新哈希值而不影响历史记录,而在使用历史记录状态时,我们可以使用提供的replaceState方法。