2017-06-19 3 views
0

Ich habe versucht, ein ausgewähltes Kontrollkästchen zu deaktivieren. Ich habe eine Liste von Elementen mit Kontrollkästchen, wenn ich also auf das Kontrollkästchen klicke, wird das Element zu Array verschoben und ich zeige es in einem anderen div an. Dann haben diese div eine Schaltfläche zum Entfernen, wenn ich das bestimmte Element entfernen. Der Artikel sollte entfernt werden und auch der Artikel, der überprüft wurde, wird deaktiviert. Ich hoffe du verstehst was ich sage. Ich bin schlecht auf Englisch. Hier ist mein Code.Wie deaktiviere ich ein ausgewähltes Kontrollkästchen, Angular 2

the first div 
      <tr *ngFor = "let item of rows"> 
       <td style ="text-align: center"><md-checkbox 
       (change)="onChange(item, $event.checked)" [value] = "item" name = "checklist"></md-checkbox></td> 
       <td> {{ item.disclosureNumber }}</td> 
       <td> {{ item.title }}</td> 
       <td><button md-icon-button (click)="openModal(item)"><i class="material-icons">find_in_page</i></button></td> 
      </tr> 

und dann ist dies das (change) Ereignis, das schieben wird, und entfernen Sie Artikel auf Array

onChange(gridData: Array<any>, isChecked: boolean) { 

    if(isChecked) { 
     //push item if true 
     this.FormArray.push(gridData); 

    } else { 
     //remove item if false 
     let index = this.FormArray.indexOf(gridData); 
     console.log(index); 
     this.FormArray.splice(index, 1); 
    } 

dann angezeigt werden, die alle FormArray Daten auf einem anderen div

<tr *ngFor = "let item of FormArray"> 
     <td> {{ item.disclosureNumber }}</td> 
     <td> {{ item.title }}</td> 
     <td><button md-icon-button (click) = "removeItem(item)"><i class="material-icons">delete</i></button></td> 
     </tr> 

es, wenn ich gut gearbeitet Klicken Sie auf die Entfernen-Schaltfläche, die entfernt wird FormArray

removeItem(item): void { 

let pointer = this.FormArray.indexOf(item); 
if (pointer > -1) { 
    this.FormArray.splice(pointer, 1); 
} 

Das Problem ist, dass selbst wenn ich das Element aus diesem FormArray entfernen, das Kontrollkästchen, das zuvor ausgewählt wurde, immer noch ausgewählt/aktiviert ist. Wie kann ich dieses Kontrollkästchen gewaltsam deaktivieren? Bitte hilf mir, danke. PS bin Neuling.

Antwort

1

Versuchen:

<md-checkbox 
    name="checklist" 
    [checked]="FormArray.indexOf(item) !== -1" 
    [value]="item" 
    (change)="onChange(item, $event.checked)"> 
</md-checkbox> 
+0

danke Sir. es hat für mich funktioniert –

Verwandte Themen