Я нашел интересную проблему, которую не могу обойти.
У меня есть цикл follwing *ngFor с событием щелчка.
<label class="input-group" *ngFor="let status of statuses; trackBy: id"
(click)="filterByCategory(status.name)">{{ status.name }}
<span class="chip chip-icon" [attr.data-chip-state]="status.name">
{{ partners | counter: status.name }}</span>
<input type="checkbox" />
<span class="checkmark"></span>
</label>
событие щелчка fn filterByCategory () - это простой процесс, отвечающий за добавление или удаление строки из массива, чтобы затем отфильтровать массив объектов.
filterByCategory(category, event: Event) {
let verify = this.filterArr.includes(category);
if (!verify) {
this.filterArr.push(category)
} else {
let indexOfCategory = this.filterArr.indexOf(category);
this.filterArr.splice(indexOfCategory, 1);
}
this.filteredPartners = this.partners.filter(partner => {
return this.filterArr.includes(partner.partner_status.name);
})
}
Когда событие запускается, оно выполняется дважды, и оператор if сначала добавляет строку, а затем удаляет ее.
Есть ли у кого - нибудь способ решить эту проблему?
Спасибо!