0

我最近希望我的 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");
});

我制作了一个 JSFiddle 小例子来测试http://jsfiddle.net/ripcurlx/Qmnrj/3/

我使用 replaceRoute 是完全错误的,还是有更好的解决方案来防止某些路由不包含在浏览器历史记录中?感谢您的任何提示!

4

1 回答 1

0

Unfortunately, this only works with location: "history". Browsers have no support for updating the hash without affecting history, whereas when using history states, there is the provided replaceState method which we can utilize.

于 2013-05-26T23:05:24.823 回答