Можно ли привязать [routerLink] к div? Угловой 2+

Я новичок в Angular, и я не нашел четких ответов на этот вопрос, что бы я ни искал.

В настоящее время это работает:

<div class = "col-sm" (click) = "brandListRoute()">

который указывает на эту функцию в моем компоненте:

brandListRoute() {
        this.router.navigate(['explore/brands']);
}

Так что это работает отлично, однако, когда я впервые попробовал привязать [routerLink] следующим образом:

<div [routerLink] = "['explore/brands']">  </div>

Я могу щелкнуть по div, но ничего не происходит. Итак, мой вопрос: работает ли [routerLink] только с такими вещами, как anchor tags и buttons, или моя вышеупомянутая логика ошибочна?

Нужно найти лучшее решение моей проблемы. Большое спасибо заранее!

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
22
0
17 452
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, его можно привязать к тегу div, ваш маршрут, вероятно, неправильный, попробуйте добавить / перед маршрутом.

<div [routerLink] = "['/explore/brands']"> go to this location </div>

Качественный товар! Это сработало в первый раз, большое вам спасибо.

Daniel Bailey 31.08.2018 13:50

Спасибо. Это хорошо работает. Я просто хочу отметить, что, если вы не используете тег привязки, он не будет отображать URI при наведении курсора, а также не будут доступны параметры контекстного меню «Открыть в новой вкладке», «Копировать URL-адрес» и т. д.

Vikram Deshmukh 07.11.2018 00:03

Примечание: если вы планируете привязать 'состояние' для маршрута, <div> НЕ будет связывать данные, однако <a> будет - проверено в Angular 8.1 и 8.2.

MeIr 13.12.2019 14:33

@VikramDeshmukh Означает ли это, что если я хочу открыть новую вкладку, привязка routerLink к div не будет работать?

Franva 31.03.2020 01:57

@Franva. Да, насколько мне известно. Однако с тех пор я отказался от Angular и, возможно, не знал о каком-либо новом способе достижения этой цели.

Vikram Deshmukh 12.04.2020 02:00

Вам следует избегать этого и предпочесть программный подход (щелчок) + навигация, поскольку он сделает ваш div «фокусируемым», а Chrome по умолчанию добавляет черный контур к элементам с фокусом.

Yohan Dahmani 07.07.2020 16:20

Другие вопросы по теме