Как сделать динамическую ссылку в angular

Как сделать динамическую ссылку в angular? Чтобы при нажатии первой кнопки - ссылка вела на гугл с запросом - "/search?q=angular", а вторая ссылка с запросом - "/search?q=javascript". Нашел примерное решение на Stackblitz.

Stackblitz


Ответы (1 шт):

Автор решения: Sergey Glazirin

html компонента, задаем в цикле ссылки, подменяя вторую часть, а host остается всегда одинаковым.

   <div *ngFor="let link of links">
      <a href="{{ host }}{{ link }}" target="_blank">{{ link }}</a>
    </div>

ts компонента, создаем поле host, который ведет на поиск гугла. А в массиве links описываем значение для поиска, который добавится во второй части ссылки

    host = 'https://www.google.com/search?q=';
    links = ['angular', 'javascript'];

Пример на stackblitz

UPD. Для варианта, когда одна ссылка, а выбор идет через кнопки.

<div *ngFor="let link of links">
  <button (click)="activeLink = link">{{ link }}</button>
</div>
<a href="{{ host }}{{ activeLink }}" target="_blank">{{ activeLink }}</a>

ts

  host = 'https://www.google.com/search?q=';

  links = ['angular', 'javascript'];

  activeLink = this.links[0];

Меняем ссылки на кнопки, а при клике в поле activeLink записываем активную кнопку, по умлочанию она равна первому элементу.

Пример на stackblitz

→ Ссылка