Как правильно определить, имеет ли выбранный компонент атрибут routerLink?

У меня есть случай, когда мне нужно перехватить событие клика и выбрать какой-то дополнительный объект конфигурации из компонента, у которого есть атрибут routerLink. Как определить, есть ли они у компонента? Есть elementRef.nativeElement.attributes.ng-reflect-router-link, но я считаю, что есть лучший способ добиться этого. Или, как определить, какой селектор использовался для сопоставления элемента в моей директиве обработчика кликов - это также ответило бы на мой вопрос.


person ppotera    schedule 06.06.2019    source источник
comment
Вы можете попробовать внедрить routerlink в конструктор компонента.   -  person Reactgular    schedule 06.06.2019
comment
Мне нужно было бы сделать это буквально в каждом кликабельном компоненте. Ни за что :(   -  person ppotera    schedule 06.06.2019


Ответы (1)


Вы можете добавить событие клика к своим ссылкам, имеющим атрибут routerLink. Взгляните на следующий ответ: https://stackoverflow.com/a/36214759/8843654

Ваши ссылки будут выглядеть примерно так: <a [routeLink]=['User'] (click)="myCallback()">User</a>

person StefanN    schedule 06.06.2019
comment
Это решение, но я бы не хотел добавлять его везде в свое приложение. Директива Click-handler, которая сопоставляет элементы через [href], [routerLink] почти все делает из коробки... - person ppotera; 06.06.2019