我想在我的应用程序路由中找不到路由时重新转换我的应用程序
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);
}
}
});
Run Code Online (Sandbox Code Playgroud)
问题newPath如何在执行之前检查是否存在this.transitionTo(newPath);
在API中我发现只有私有的hasRoute
更新以更好地理解问题
例如我有路线:
Router.map(function() {
this.route('login'),
this.route('not-found', { path: '/*wildcard' });
});
Run Code Online (Sandbox Code Playgroud)
当用户请求URI例如en/loginember 加载not-found路由时(默认为通配符)。真实路径是login.
我想删除en并尝试找出login我的应用程序中是否存在路由,否则它将是真正的“未找到”页面
en/login==login并且它是有效的,将重定向到登录
en/abc==abc该路由不存在,not-found继续执行
use*_*168 -2
这帮助我找到匹配路线的序列
var recognizer = this.get('router.router.recognizer');
recognizer.recognize(currentPath);
Run Code Online (Sandbox Code Playgroud)