我想重新轉換我的應用程序時,未發現路線,在我的應用途徑如何知道我是否做之前就存在的路線轉變
export default Ember.Route.extend({
redirect: function(model, transition) {
if (transition.targetName == "not-found") {
var newPath = transition.intent.url //do some logic
this.transitionTo(newpath);
}
}
});
問題如何檢查是否存在newPath
我做this.transitionTo(newPath);
在API我發現只有私人hasRoute
UPDATE更好地理解問題
例如我有路線:
Router.map(function() {
this.route('login'),
this.route('not-found', { path: '/*wildcard' });
});
當例如en/login
餘燼負載not-found
路由用戶請求URI
(默認爲通配符)。真正的路徑是login
。
我想刪除en
並試圖找出是否login
路線在我的應用程序存在,否則這將是真正的「未找到」
en/login
== login
和它是有效的,會重定向到登錄
en/abc
== abc
這條路不存在,not-found
繼續執行
我假設你的意思是'Ember.Router'的'hasRoute'。還有(也仍然是私人的,但根據代碼評論希望有時會公開)[路由服務](http://emberjs.com/api/classes/RoutingService.html)([source](https://github.com) /emberjs/ember.js/blob/v2.8.0/packages/ember-routing/lib/services/routing.js)),你可以用Ember.inject.service(' - routing')注入任何地方' – Thernys
爲什麼? Ember建議將路由名稱傳遞給transitionTo,而不是url。這條路線怎麼可能不存在?請解釋你試圖達到什麼目的。 –