#html #angular #for-loop #button #ngfor
#HTML #angular #для цикла #кнопка #ngfor
Вопрос:
У меня есть таблица данных с кнопкой в каждой строке. Эта кнопка работает
<button mat-raised-button color="primary" (click)="action(car.id)">Action</button>
Я пытаюсь создать кнопку, которая вызывает действие (car.id ) для всех строк таблицы данных, так что для всех car.id
<button>
<div *ngFor='let cars of car'>
<span (click)='this.action(cars.id)'>Action</span>
</div>
</button>
Кнопка возвращает только ОДИН из идентификаторов
Я попытался изменить его, изменив расположение *ngFor, но он по-прежнему не работает.
Если я помещу *ngFor в тег button, он создаст несколько кнопок, которые будут работать, но мне нужна только одна кнопка, чтобы нажать на нее
Комментарии:
1. Вы уверены, что это
let cars of car
вместоlet car of cars
? Кроме того, в функции не должно быть athis
, это подразумевается.2. Я пробовал let car или cars, но в моем случае это cars of car. Это ошибка, но она работает. Также я попытался добавить это. но это ничего не изменило. Он по-прежнему возвращает только один идентификатор
3. Это работает для меня. Stackblitz.
4. Мне нужна уникальная кнопка, которая возвращает car 1, car 2, car 3… У меня также есть тот же результат, что и у вас, несколько кнопок, которые работают отдельно
5. Сейчас я пытаюсь использовать trackBy
Ответ №1:
Внутри вашего компонента ts-файла
public actionForAll(){
this.cars.forEach((car) => {
this.action(car.id)
});
}
Внутри вашего компонентного HTML-файла
<button mat-raised-button color="primary" (click)="actionForAll()">Action</button>
Комментарии:
1. пожалуйста, отметьте ответ как принятый, если он решил проблему