W Angular Material Design 6 metoda (zmiana) została usunięta. Nie mogę znaleźć sposobu na zastąpienie metody change, aby wykonać kod w komponencie, gdy użytkownik zmieni wybór. Dzięki!
129
Zmieniono go z change
na selectionChange
.
<mat-select (change)="doSomething($event)">
jest teraz
<mat-select (selectionChange)="doSomething($event)">
(changeEventChange)
zdarzenia, aby wykryć zmianę zdarzenia.selectionChange
materiał.angular.ioJeśli korzystasz z formularzy reaktywnych, możesz nasłuchiwać zmian w kontrolce zaznaczania, w ten sposób ...
źródło
.updateValueAndValidity
kontroli, nie zapomnij przejść{ emitEvent: false }
, aby uniknąćRangeError: Maximum call stack size exceeded
. Z drugiej strony dzięki za podpowiedź (+1), doprowadziło mnie to do czego potrzebowałem.Dla:
1) mat-select
(selectionChange)="myFunction()"
działa pod kątem:sample.component.html
sample.component.ts
2) Prosty wybór html
(change)="myFunction()"
działa w trybie kątowym jako:sample.component.html
sample.component.ts
źródło
U mnie
(selectionChange)
i sugerowane(onSelectionChange)
nie zadziałały i nie używamReactiveForms
. Skończyło się na tym, że wykorzystałem to(valueChange)
wydarzenie:I to zadziałało dla mnie
źródło
<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>
Mam dzisiaj ten problem z mat-opcja-grupa. Tym, co rozwiązało problem, jest użycie w innym podanym przypadku mat-select: valueChange
Umieściłem tutaj mały kod do zrozumienia:
Wersja maty:
źródło