gpt4 book ai didi

ember.js - 在我进行过渡之前如何知道路线是否存在

转载 作者:行者123 更新时间:2023-12-01 04:53:04 26 4
gpt4 key购买 nike

我想在我的申请 route 找不到路线时重新转换我的申请

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 中,我发现只有私有(private)的 hasRoute
更新 为了更好地理解问题

例如我有路线:
Router.map(function() {
this.route('login'),
this.route('not-found', { path: '/*wildcard' });
});

当用户请求 URI例如 en/login Ember 加载 not-found路由(默认为通配符)。真实路径是 login .

我要删除 en并尝试找出 login路线存在于我的应用程序中,否则它将是真正的“未找到”页面
en/login == login它是有效的,将重定向到登录
en/abc == abc这条路线不存在, not-found继续执行

最佳答案

你可以做:
getOwner(this).lookup(`route:${routeName}`);
从容器创建的任何对象(路由、 Controller 、组件、服务)测试是否routeName是有效的路线。如果是,您将返回 Route对象,否则你会得到 undefined (所以你可以检查真实性)。

关于ember.js - 在我进行过渡之前如何知道路线是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39536038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com