En Angular Material Design 6, se eliminó el método (cambiar). No puedo encontrar cómo reemplazar el método de cambio para ejecutar el código en el componente cuando el usuario cambia la selección ¡Gracias!
129
La cambió de change
a selectionChange
.
<mat-select (change)="doSomething($event)">
es ahora
<mat-select (selectionChange)="doSomething($event)">
(changeEventChange)
evento para detectar cuándo cambia el evento de cambio.selectionChange
material.angular.io/components/select/apiSi está utilizando formularios reactivos, puede escuchar los cambios en el control de selección así.
fuente
.updateValueAndValidity
el control, no olvide pasar{ emitEvent: false }
para evitarRangeError: Maximum call stack size exceeded
. Por otro lado, gracias por la pista (+1), me llevó a lo que necesitaba.Por:
1) mat-select
(selectionChange)="myFunction()"
funciona en angular como:sample.component.html
sample.component.ts
2) La selección html simple
(change)="myFunction()"
funciona en angular como:sample.component.html
sample.component.ts
fuente
Para mí
(selectionChange)
y lo sugerido(onSelectionChange)
no funcionó y no lo estoy usandoReactiveForms
. Lo que terminé haciendo fue usar el(valueChange)
evento como:Y esto funcionó para mi
fuente
<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>
Hoy tengo este problema con mat-option-group. Lo que me resolvió el problema es usar en otro evento proporcionado de mat-select: valueChange
Pongo aquí un pequeño código para entenderlo:
Versión del tapete:
fuente