RouterLinkWithHref
При применении к элементу шаблона этот элемент становится ссылкой, инициирующей переход к маршруту. При переходе один или несколько компонентов маршрута отображаются в одном или нескольких расположениях <router-outlet> на странице.
API
class RouterLinkWithHref implements OnChanges ,OnDestroy {
constructor(router: Router, route: ActivatedRoute, tabIndexAttribute: string | null | undefined, renderer: Renderer2, el: ElementRef<any>, locationStrategy?: LocationStrategy | undefined): RouterLink;
get href(): string | null;
@Input() get target(): string | undefined;
@Input() get queryParams(): Params | null | undefined;
@Input() get fragment(): string | undefined;
@Input() get queryParamsHandling(): QueryParamsHandling | null | undefined;
@Input() get state(): { [k: string]: any; } | undefined;
@Input() get info(): unknown;
@Input() get relativeTo(): ActivatedRoute | null | undefined;
@Input() get preserveFragment(): boolean;
@Input() get skipLocationChange(): boolean;
@Input() get replaceUrl(): boolean;
@Input() browserUrl: InputSignal<string | UrlTree | undefined>;
@Input() set routerLink(value: string | readonly any[] | UrlTree | null | undefined);
readonly urlTree: UrlTree | null;
}
constructor
RouterLinkstring | null | undefined
RouterLink
href
string | nullПредставляет значение атрибута href, применённое к элементу-хосту, если элемент-хост является тегом <a>/<area> или совместимым пользовательским элементом. Для других тегов значение равно null.
href
string | nulltarget
string | undefinedПредставляет атрибут target элемента-хоста. Используется только в том случае, если элемент-хост является тегом <a>/<area> или совместимым пользовательским элементом.
target
string | undefinedqueryParams
Params | null | undefinedПередаётся в Router#createUrlTree как часть UrlCreationOptions.
queryParams
Params | null | undefinedfragment
string | undefinedПередаётся в Router#createUrlTree как часть UrlCreationOptions.
fragment
string | undefinedqueryParamsHandling
QueryParamsHandling | null | undefinedПередаётся в Router#createUrlTree как часть UrlCreationOptions.
queryParamsHandling
QueryParamsHandling | null | undefinedstate
{ [k: string]: any; } | undefinedПередаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
state
{ [k: string]: any; } | undefinedinfo
unknownПередаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
info
unknownrelativeTo
ActivatedRoute | null | undefinedПередаётся в Router#createUrlTree как часть UrlCreationOptions. Укажите здесь значение, если не хотите использовать значение по умолчанию для routerLink — текущего активированного маршрута. Обратите внимание: значение undefined будет использовать значение по умолчанию для routerLink.
relativeTo
ActivatedRoute | null | undefinedpreserveFragment
booleanПередаётся в Router#createUrlTree как часть UrlCreationOptions.
preserveFragment
booleanskipLocationChange
booleanПередаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
skipLocationChange
booleanreplaceUrl
booleanПередаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
replaceUrl
booleanbrowserUrl
InputSignal<string | UrlTree | undefined>Передаётся в Router#navigateByUrl как часть NavigationBehaviorOptions.
routerLink
string | readonly any[] | UrlTree | null | undefinedКоманды, передаваемые в Router#createUrlTree, или UrlTree.
-
массив: команды, передаваемые в
Router#createUrlTree. -
строка: сокращённая форма массива команд, содержащего только эту строку, то есть
['/route'] -
UrlTree:
UrlTreeдля этой ссылки вместо создания дерева из команд и других входных данных, соответствующих свойствамUrlCreationOptions. -
null|undefined: фактически отключает
routerLink
urlTree
UrlTree | nullОписание
При применении к элементу шаблона этот элемент становится ссылкой, инициирующей переход к маршруту. При переходе один или несколько компонентов маршрута отображаются в одном или нескольких расположениях <router-outlet> на странице.
Если задана конфигурация маршрута [{ path: 'user/:name', component: UserCmp }], следующий код создаёт статическую ссылку на маршрут: <a routerLink="/user/bob">link to user component</a>
Для создания ссылки можно использовать динамические значения. Для динамической ссылки передайте массив сегментов пути, а затем параметры для каждого сегмента. Например, ['/team', teamId, 'user', userName, {details: true}] создаёт ссылку на /team/11/user/bob;details=true.
Несколько статических сегментов можно объединить в один термин и комбинировать с динамическими сегментами. Например, ['/team/11/user', userName, {details: true}]
Входные данные ссылки рассматриваются как разница относительно текущего URL. Например, предположим, что текущий URL — /user/(box//aux:team). Ссылка <a [routerLink]="['/user/jim']">Jim</a> создаёт URL /user/(jim//aux:team). Подробнее см. в разделе Router#createUrlTree.
Экспортировано из
Примечания по использованию
В ссылке можно использовать абсолютные или относительные пути, задавать параметры запроса, управлять их обработкой и сохранять историю состояний навигации.
Относительные пути ссылок
Перед именем первого сегмента можно указать /, ./ или ../.
- Если первый сегмент начинается с
/, маршрутизатор ищет маршрут от корня приложения. - Если первый сегмент начинается с
./или не начинается с косой черты, маршрутизатор ищет маршрут среди дочерних маршрутов текущего активированного маршрута. - Если первый сегмент начинается с
../, маршрутизатор поднимается на один уровень вверх по дереву маршрутов.
Задание и обработка параметров запроса и фрагментов
Следующая ссылка добавляет параметр запроса и фрагмент в созданный URL:
<a [routerLink]="['/user/bob']" [queryParams]="{debug: true}"
fragment="education"> link to user component
</a>
По умолчанию директива создаёт новый URL с указанными параметрами запроса. В примере создаётся ссылка: /user/bob?debug=true#education.
Можно указать директиве другой способ обработки параметров запроса, задав в ссылке параметр queryParamsHandling. Допустимые значения:
-
'merge': объединяет заданныеqueryParamsс текущими параметрами запроса. -
'preserve': сохраняет текущие параметры запроса.
Например:
<a [routerLink]="['/user/bob']" [queryParams]="{debug: true}"
queryParamsHandling="merge"> link to user component
</a>
queryParams, fragment, queryParamsHandling, preserveFragment и relativeTo нельзя использовать, если входное значение routerLink — это UrlTree.
См. UrlCreationOptions#queryParamsHandling.
Сохранение истории навигации
Можно указать значение state, которое будет сохранено в свойстве History.state объекта History браузера. Например:
<a [routerLink]="['/user/bob']" [state]="{tracingId: 123}">
link to user component
</a>
Используйте Router#currentNavigation, чтобы получить сохранённое значение состояния навигации Signal. Например, чтобы зафиксировать tracingId во время события NavigationStart:
// Get NavigationStart events
router.events.pipe(filter(e => e instanceof NavigationStart)).subscribe(e => {
const navigation = router.currentNavigation();
tracingService.trace({id: navigation.extras.state.tracingId});
}); Пользовательские элементы, совместимые с RouterLink
Чтобы пользовательский элемент работал с routerLink, он должен реализовать атрибут href и включать href в массив статического свойства/геттера observedAttributes.
Super-powered by Google ©2010–2025.
Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0.
https://angular.dev/api/router/RouterLinkWithHref