gpt4 book ai didi

aurelia - 使用 Aurelia 重定向类

转载 作者:行者123 更新时间:2023-12-04 23:40:31 27 4
gpt4 key购买 nike

我已经向我的路由器添加了授权管道步骤。一切正常,但是当我使用 Redirect 时类来将用户指向登录页面,它接受一个 URL 作为它的参数。如果我使用 Router.navigateToRoute(),我更愿意传递路线名称.这可能吗?

@inject(AuthService)
class AuthorizeStep {
constructor (authService) {
this.authService = authService;
}

run (navigationInstruction, next) {
if (navigationInstruction.getAllInstructions().some(i => i.config.auth)) {
if (!this.authService.isLoggedIn) {
return next.cancel(new Redirect('url-to-login-page')); // Would prefer to use the name of route; 'login', instead.
}
}

return next();
}
}

最佳答案

经过一番谷歌搜索后,我找到了 Router.generate()接受路由器名称(和可选参数)并返回 URL 的方法。我现在已将授权步骤更新为以下内容:

@inject(Router, AuthService)
class AuthorizeStep {
constructor (router, authService) {
this.router = router;
this.authService = authService;
}

run (navigationInstruction, next) {
if (navigationInstruction.getAllInstructions().some(i => i.config.auth)) {
if (!this.authService.isLoggedIn) {
return next.cancel(new Redirect(this.router.generate('login')));
}
}

return next();
}
}

编辑:经过更多的谷歌搜索后,我找到了 RedirectToRoute类(class);
import { RedirectToRoute } from 'aurelia-router';

...
return next.cancel(new RedirectToRoute('login'));

关于aurelia - 使用 Aurelia 重定向类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815455/

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