Флажки, созданные с помощью массива ngFor, не обновляются при изменении массива - PullRequest
0 голосов
/ 11 января 2019

У меня есть массив элементов (itemsarray), которые должны быть представлены флажками. У меня есть другой массив (addItem), который содержит элементы, которые уже были проверены.

Всякий раз, когда addItem изменяется в фоновом режиме из-за выбора пользователя, флажки не обновляются. Кроме того, если элемент удаляется из addItem вручную, флажок не обновляется.

<div class="form-group">
   <label class="control-label col-sm-12" for="secname">Choose Your Items</label>
   <div class="col-sm-10" *ngFor="let item of itemsarray; let i=index">
       <input type="checkbox" [checked]='additem.indexOf(item)>-1' (click)='checkditem($event,item)' >{{item.itemname.itemname}}
   </div>
</div>

1 Ответ

0 голосов
/ 11 января 2019

Я полагаю, что addItem.indexOf (item) возвращает -1 при сравнении ссылок.

Попробуйте создать функцию для проверки (по свойству), содержит ли массив addItem объект item.

Ex.

itemChecked(item)
{
    const res = addItem.find(i => i.id === item.id);
     return res !== undefined;
}

А по вашему мнению:

<input type="checkbox" [checked]='itemChecked(item)' (click)='checkditem($event,item)'>{{item.itemname.itemname}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...