2

在我的应用程序中,我使用 routerLink 根据在 routerLink 中传递的参数创建我的链接。

<a [routerLink]="['/home/global/userprofile',UserId]">

上面的代码使用提供的 userId 生成链接,但我想自定义 angular routerLink 以便我可以检查 UserId 是否有效,如果有效,我将通过此返回转换后的 href 链接,如果不是,我将返回空白或空 url。

我不能使用任何其他指令方法或管道工厂,因为我在项目的多个地方使用了这个 routerLink 代码,所以我只是不想去更改每个编写该代码的地方。任何人都可以指导我吗?我只需要概念,我可以为这个想法编写代码。

如果需要,如果对此有任何疑问,我可以进一步解释。

4

1 回答 1

3

routerLink我建议您在组件类中使用编程重定向,而不是使用指令,如下所示:

HTML 组件文件

<a (click)="goToUserProfile(UserId)">Some link</a>

TS 组件类:

import { Router } from '@angular/router';

constructor(private router: Router) {}

goToUserProfile(userId: number) {
    if (/* userId verification*/) {
        this.router.navigate(['/home/global/userprofile', userId]);
    }
    // do nothing
}

否则,您可以使用路由器保护,这里有一些有用的链接:

希望能帮助到你。

于 2018-06-12T09:10:21.443 回答