web-dev-qa-db-fra.com

Angular 6 comment passer la case sélectionnée à ngModel

J'ai un problème avec la case à cocher Passer sélectionnée (qui est itérée) à ngModel.

    <label class="btn btn-outline-secondary" 
     *ngFor="let test of tests"  >
      <input type="checkbox">
    </label>

en ts j'ai modèle:

     testData = <any>{};

this.tests = [{
    id: 1, name: 'test1' 
  },
  {
    id: 2, name: 'test2' 
  },
  {
    id: 3, name: 'test3' 
  },  
]

J'ai essayé avec ngModel et ngModelChange, mais j'ai toujours un problème avec la case à cocher Afficher sélectionnée. Comment puis-je faire ceci?

5
emka26

utilisez [(ngModel)]="test.name"

 <label class="btn btn-outline-secondary" *ngFor="let test of tests"  >
  <input type="checkbox" [(ngModel)]="test.selected" > {{test.name}} - {{test.selected}}
</label>

Démo

6
Sachila Ranawaka

Je vous suggère d'ajouter une propriété dans votre modèle et de la lier dans le modèle.

<label class="btn btn-outline-secondary" *ngFor="let test of tests"  >
    <input type="checkbox" [(ngModel)]="test.isChecked">
</label>
this.tests = [{
    id: 1, name: 'test1', isChecked: false
  },
  {
    id: 2, name: 'test2', isChecked: true
  },
  {
    id: 3, name: 'test3', isChecked: false 
  },  
]
2
Stanisalv Dontsov