我想重新过渡我的申请时,路线没有找到,在我的申请路线
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);
}
}
});
字符串
问题如何在做this.transitionTo(newPath);
之前检查newPath
是否存在
在API中我只找到私有hasRoute
更新以更好地了解问题
例如,我有路由:
Router.map(function() {
this.route('login'),
this.route('not-found', { path: '/*wildcard' });
});
型
当用户请求URI
(例如en/login
)时,请加载not-found
路由(默认为通配符)。真实的路径为login
。
我想删除en
,并试图找出如果login
路由存在于我的应用程序,否则它将是真实的的“找不到”页en/login
== login
且有效,将重定向到登录en/abc
== abc
此路由不存在,not-found
继续执行
3条答案
按热度按时间yacmzcpb1#
您可以:
第一个月
从容器中创建的任何对象(路由、控制器、组件、服务)来测试
routeName
是否是有效的路由。如果是,你将得到一个Route
对象,如果不是,你将得到undefined
(所以你可以检查真实性)。q5iwbnjs2#
在过渡到刺绣后,
getOwner(this).lookup(
route:${routeName})
答案不再起作用,但是您现在可以使用公共的router service来确定是否存在路由。看起来hasRoute
不是API的一部分,但我们通过调用urlFor
并处理它在路由不存在时抛出的异常来处理这个问题:字符串
neekobn83#
这可以帮助我找到匹配路由的序列
字符串