2016-10-21 3 views
0

У меня есть список флажков, сгенерированных из цикла ngFor и кнопки сброса. Когда нажата кнопка сброса, если установлен какой-либо из флажков, я хочу их снять.Снять отметку со всех отмеченных флажков Angular2

Вот мой HTML

<li *ngFor="let item of listItems" class="filter-list__item"> 
    <label class="filter-list__itemLabel"> 
     <input type="checkbox" value="{{item.id}}" [checked]="checked" /> 
     <span innerHTML="{{item.name}}"></span> 
    </label> 
</li> 
<button (click)="resetAll()"></button> 

ответ

5

Вы, вероятно, хотите, чтобы связать проверяемый атрибут состояния элемента, как это.

<li *ngFor="let item of listItems" class="filter-list__item"> 
    <label class="filter-list__itemLabel"> 
     <input type="checkbox" value="{{item.id}}" [checked]="item.checked" /> 
     <span innerHTML="{{item.name}}"></span> 
    </label> 
</li> 

<button (click)="resetAll()"></button> 

Теперь вы можете создать функцию resetAll в компоненте для доступа к элементам списка и сбросить значение к ложному

resetAll() { 
    this.listItems.forEach((item) => { 
    item.checked = false; 
    }) 
+0

Что делать, если я не хочу применять проверенное значение к каждому элементу в моем массиве? –

+0

Затем вы можете создать еще один массив для хранения всех отмеченных значений. –

+0

@koningdavid '[checked]' не может выполнять двустороннюю привязку данных. '[(ngModel)]' является лучшим решением вместо '[checked]' – Imran

0

Моего решения заключается в следующем, и он работает как шарм:

Предположим, вы используете модальный диалог. Лучший способ - подписаться на это на Close-Observable. Затем вы просто переписываете основной список с помощью самого клона. Angluar теперь вынужден перекрасить весь список и автоматически удаляет все тики.

ngAfterViewInit() { 

    this.modal.onClose.subscribe(() => { 
     if (this.objectList) { 
      this.objectList = JSON.parse(JSON.stringify(this.objectList)); 
     } 
    }); 

} 

Если вы не используете модальный диалог, просто реализуйте метод для запуска процесса перезаписи.

Смежные вопросы