我想重新转换我的应用程序时,未发现路线,在我的应用途径如何知道我是否做之前就存在的路线转变
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。这条路线怎么可能不存在?请解释你试图达到什么目的。 –