@frontAng

Как связать два массива?

Пример . Кликнули по цифре 1 - добавился класс active как к данному элементу, так и test1

кликнули по test2 - добавился класс active как ему, так и цифре 2

https://stackblitz.com/edit/angular-hello-world-cy...
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
qant
@qant
programer
<ng-container *ngFor="let item of arr1; let index = index">
  <p [class.active]="isActive[index]" (click)="toggleClass(index)">
    {{ item }}
  </p>
</ng-container>

<ng-container *ngFor="let item of arr2; let index = index">
  <p
    [class.active]="isActive[arr1.length + index]"
    (click)="toggleClass(arr1.length + index)"
  >
    {{ item }}
  </p>
</ng-container>


isActive: boolean[] = [];

  toggleClass(index: number) {
    this.isActive[index] = !this.isActive[index];
  }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Покажите как вы пробовали решать и что у вас не получилось.
В целом:
1. При клике сохраняйте индекс кликнутого элемента (опционально, удаляйте индекс кликнутого элемента по повторному клику)
2. При выводе проверяйте, есть ли индекс текущего элемента в массиве кликнутых. Если есть - устанавливайте класс active.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы