In Angular Material Design 6 wurde die (Änderungs-) Methode entfernt. Ich kann nicht finden, wie die Änderungsmethode ersetzt werden kann, um Code in der Komponente auszuführen, wenn der Benutzer die Auswahl ändert. Danke!
129
Das hat es von change
zu geändert selectionChange
.
<mat-select (change)="doSomething($event)">
ist jetzt
<mat-select (selectionChange)="doSomething($event)">
(changeEventChange)
Ereignis, um zu erkennen, wann sich das Änderungsereignis ändert.selectionChange
material.angular.io/components/select/apiWenn Sie reaktive Formulare verwenden, können Sie wie folgt auf Änderungen am Auswahlsteuerelement warten.
quelle
.updateValueAndValidity
die Kontrolle benötigen, nicht vergessen müssen,{ emitEvent: false }
um zu vermeidenRangeError: Maximum call stack size exceeded
. Auf der anderen Seite danke für den Hinweis (+1), es führte mich zu dem, was ich brauchte.Zum:
1) mat-select
(selectionChange)="myFunction()"
arbeitet im Winkel wie folgt:sample.component.html
sample.component.ts
2) Einfache HTML-Auswahl
(change)="myFunction()"
funktioniert im Winkel wie folgt:sample.component.html
sample.component.ts
quelle
Für mich
(selectionChange)
und den vorgeschlagenen(onSelectionChange)
hat nicht funktioniert und ich benutze nichtReactiveForms
. Am Ende nutzte ich das(valueChange)
Event wie folgt:Und das hat bei mir funktioniert
quelle
<mat-select placeholder="Select an option" [(ngModel)]="project.managerId" name="managerId" required (selectionChange)="fillComanager(project.managerId)"> <mat-option *ngFor="let manager of managers" [value]="manager.id"> {{ manager.name }} </mat-option> </mat-select>
Ich habe dieses Problem heute mit mat-option-group. Die Sache, die mich das Problem gelöst hat, ist die Verwendung in einem anderen bereitgestellten Ereignis von mat-select: valueChange
Ich habe hier einen kleinen Code zum Verständnis eingefügt:
Matte Version:
quelle