Простой тег привязки с href вызывает страницу refre sh in Angular - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть веб-компонент, который использует простой тег привязки с href, указывающим на маршрут.

При нажатии на ссылку приложение перезагружается.

Я не могу использовать routerLink (веб-компонент не Angular). Каков наилучший способ избежать перезагрузки страницы?

1 Ответ

2 голосов
/ 26 апреля 2020

Чтобы обойти эту проблему, я прислушиваюсь к щелчкам на тегах «a» и предотвращаю поведение по умолчанию, если оно не содержит атрибут «routerlink».

  @HostListener('window:click', ['$event'])
  onClick(e: any) {
    const path = e.composedPath() as Array<any>;

    const firstAnchor = path.find(p => p.tagName && p.tagName.toLowerCase() === 'a');
    if (firstAnchor && !firstAnchor.hasAttribute('routerlink')) {
      const href = firstAnchor.getAttribute('href');

      this.router.navigateByUrl(href);

      e.preventDefault();
    }
  }
...