После этот вопрос У меня есть:
<mat-select [formControl]="tipoAttivitaSelect" multiple >
<mat-option #selectAll [value]="0" (click)="all()">
All
</mat-option>
<mat-option *ngFor="let attivita of mappaAttivita" [value]="attivita" (click)="opzioneSelezionata(attivita.value)">
{{attivita.description}}
</mat-option>
</mat-select>
И в .ts
@ViewChild('selectAll') private selectAll: MatOption;
tipoAttivitaSelect: FormControl = new FormControl();
mappaAttivita = [{
value:"option1",
description:"Option 1"
},
{
value:"option2",
description:"Option 2"
}]
ngOnInit(){
this.selectAll.select();
this.tipoAttivitaSelect.patchValue([...this.mappaAttivita.map(item => item), 0])
}
all() {
if (this.selectAll.selected) {
this.tipoAttivitaSelect.patchValue([...this.mappaAttivita.map(item => item), 0])
} else {
this.tipoAttivitaSelect.patchValue([])
}
}
Я ожидаю, что когда я перейду на страницу, онивсе выбрано, но этого не происходит. Когда я вхожу на страницу, выбирается только опция «все», а остальные нет;затем, если я сниму флажок с опции all и затем вернусь обратно, все опции будут выбраны правильно.
Я не понимаю, почему это происходит, так как я делаю одну и ту же операцию как в ngOnInit, так и в методе "all ()"