No Angular Material Design 6, o método (alterar) foi removido. Não consigo descobrir como substituir o método de alteração para executar código no componente quando o usuário altera a seleção. Obrigado!
129
O mudou de change
para selectionChange
.
<mat-select (change)="doSomething($event)">
é agora
<mat-select (selectionChange)="doSomething($event)">
(changeEventChange)
evento para detectar quando o evento de mudança muda.selectionChange
material.angular.io/components/select/apiSe você estiver usando formulários reativos, poderá ouvir as alterações no controle de seleção, assim ..
fonte
.updateValueAndValidity
do controle não esqueça de passar{ emitEvent: false }
para evitarRangeError: Maximum call stack size exceeded
. Por outro lado, obrigado pela dica (+1), me levou ao que eu precisava.Para:
1) seleção de esteira
(selectionChange)="myFunction()"
funciona em angular como:sample.component.html
sample.component.ts
2) A seleção simples de html
(change)="myFunction()"
funciona em angular como:sample.component.html
sample.component.ts
fonte
Para mim
(selectionChange)
e o sugerido(onSelectionChange)
não funcionou e não estou usandoReactiveForms
. O que acabei fazendo foi usar o(valueChange)
evento como:E isso funcionou para mim
fonte
<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>
Eu tenho esse problema hoje com mat-option-group. A única coisa que me resolveu o problema é usar em outro evento fornecido de mat-select: valueChange
Eu coloquei aqui um pequeno código para entender:
Versão Mat:
fonte