Настройте routerLink в Angular 5 - PullRequest
0 голосов
/ 12 июня 2018

В моем приложении я использую routerLink для создания моей ссылки в соответствии с параметром, переданным в routerLink.

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

Выше кода генерирует ссылки с предоставленным userId, но я хочу настроить угловой routerLink так, чтобыЯ могу проверить, является ли UserId действительным или нет, если он действителен, я верну преобразованную ссылку href через это, а если нет, я верну пустой или нулевой URL.

Я не могу использовать какой-либо другой директивный подход или фабрики каналов, так какЯ использую этот код routerLink в нескольких местах в моем проекте, поэтому я просто не хочу переходить и изменять все, где этот код является записывающим.Кто-нибудь может направить меня в этом?Мне просто нужна концепция, я могу написать код для идеи.

Если требуется, я могу объяснить это подробнее, если возникнут какие-либо вопросы.

1 Ответ

0 голосов
/ 12 июня 2018

Вместо использования директивы 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
}

В противном случае вы можете использовать защиту маршрутизатора, вот несколько полезных ссылок:

Надеюсь, это поможет.

...