我最近希望我的emberjs應用中的一些路由不會顯示在瀏覽器歷史記錄中,並試圖利用RC1中引入的replaceRoute功能。不幸的是,如果我使用transitionToRoute或replaceRoute,它根本沒有任何區別。 假設我有3頁,並且我希望回到歷史頁面時跳過頁面1。replaceRoute不按預期工作?
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例如,對於我使用的replaceRoute完全錯誤的測試http://jsfiddle.net/ripcurlx/Qmnrj/3/
,或者是有一個更好的解決方案,以防止某些路線不被包括在瀏覽器歷史記錄? 感謝您的任何提示!
它看起來像這隻適用於如果你使用位置:「歷史」而不是位置:「哈希」。我會看看是否能夠以某種方式爲Ember.HashLocation實現它。 – ripcurlx 2013-05-15 07:55:57