我希望在我的应用程序路径中找不到路由时重新转换我的应用程序
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是否存在.transitionTo(newPath);
在API我发现只有私有hasRoute
更新以更好地了解问题
例如我有路线:
Router.map(function() {
this.route('login'),
this.route('not-found', { path: '/*wildcard' });
});
当用户请求URI时,例如en / login ember加载not-found路由(默认为Wildcard).真实路径是登录.
我想删除en并尝试找出我的应用程序中是否存在登录路由,否则它将是真正的“未找到”页面
en / login ==登录并且有效,将重定向到登录
en / abc == abc此路由不存在,未找到继续执行
最佳答案 你可以做:
getOwner(本).lookup(`路线:${routeName}`);
从容器(路由,控制器,组件,服务)创建的任何对象来测试routeName是否是有效路由.如果是,你将获得一个Route对象,如果没有,你将得到未定义(所以你可以检查真实性).