Mon code TypeScript est donné ci-dessous.
selectedAll: any;
selectedAllSecondname: any;
this.name = [ {name: 'as', value: 'as', selected: false },
{name: 'bs', value: 'bs', selected: false },
{name: 'cs', value: 'cs', selected: false } ];
this.Secondname = [ {name: 'dd', value: 'dd', selected: false },
{name: 'ee', value: 'ee', selected: false },
{name: 'ff', value: 'ff', selected: false } ];
this.Thirdname = [ {name: 'gg', value: 'gg', selected: false },
{name: 'hh', value: 'hh', selected: false },
{name: 'ii', value: 'ii', selected: false } ];
selectAll(){
for(var i=0; i < this.name.length; i++) {
for(var j=0; j < this.Secondname.length; j++) {
this.name[i].selected = this.selectedAll;
this.Secondname[j].selected = this.selectedAllSecondname;
}
}
}
checkIfAllSelected(){
this.selectedAll = this.names.every(function (item: any) {
this.checkIfAllSecondnameSelected();
return item.selected == true;
})
}
J'ai donc les mêmes fonctions avec des noms différents pour chaque liste que j'ai déclarée.
My html:
<li><input type="checkbox" [(ngModel)] = "selectedAll" (change) = "selectAll();">Select All </li>
<li *ngFor = "let a of name">
<input type="checkbox" [(ngModel)]="a.selected" (change)="checkIfAllSelected()">
{{ a.name }}
<li>
<li><input type="checkbox" [(ngModel)] = "selectedAll" (change) = "selectAllSecondname();">Select All </li>
<li *ngFor = "let d of Secondname">
<input type="checkbox" [(ngModel)]="d.selected" (change)="checkIfAllSecondnameSelected()">
{{ d.name }}
<li>
Voici donc ce que j'essaie de faire, si je clique sur tout sélectionner, je dois cocher toutes les autres cases de la page. Mais il ne vérifie que les noms et non les deuxièmes noms et troisièmes noms.
Quelqu'un peut-il me dire où je vais mal et comment corriger cela?
Changez simplement "this.selectedAllSecondname" dans selectAll () en "this.selectedAll" comme:
selectAll(){
for(var i=0; i < this.name.length; i++) {
this.name[i].selected = this.selectedAll;
}
for(var j=0; j < this.Secondname.length; j++) {
this.Secondname[j].selected = this.selectedAll;
}
for(var j=0; j < this.Thirdname.length; j++) {
this.Thirdname[j].selected = this.selectedAll;
}
}
Veuillez essayer le code ci-dessous pour la méthode selectAll
: -
selectAll() {
for (var i = 0; i < this.name.length; i++) {
this.name[i].selected = this.selectedAll;
}
for (var i = 0; i < this.Secondname.length; i++) {
this.Secondname[i].selected = this.selectedAll;
}
for (var i = 0; i < this.Thirdname.length; i++) {
this.Thirdname[i].selected = this.selectedAll;
}
}