Dans Angular Material Design 6, la méthode (change) a été supprimée. Je ne trouve pas comment remplacer la méthode de changement pour exécuter du code dans le composant lorsque l'utilisateur change la sélection Merci!
Dans Angular Material Design 6, la méthode (change) a été supprimée. Je ne trouve pas comment remplacer la méthode de changement pour exécuter du code dans le composant lorsque l'utilisateur change la sélection Merci!
Réponses:
Le changé de change
à selectionChange
.
<mat-select (change)="doSomething($event)">
est maintenant
<mat-select (selectionChange)="doSomething($event)">
(changeEventChange)
événement pour détecter quand l'événement de modification change.
selectionChange
material.angular.io/components/select/api
Si vous utilisez des formulaires réactifs, vous pouvez écouter les modifications apportées au contrôle de sélection comme suit.
this.form.get('mySelectControl').valueChanges.subscribe(value => { ... do stuff ... })
.updateValueAndValidity
la commande n'oubliez pas de passer { emitEvent: false }
pour éviter RangeError: Maximum call stack size exceeded
. Par contre merci pour l'indice (+1), cela m'a conduit à ce dont j'avais besoin.
Pour:
1) mat-select (selectionChange)="myFunction()"
fonctionne en angulaire comme:
sample.component.html
<mat-select placeholder="Select your option" [(ngModel)]="option" name="action"
(selectionChange)="onChange()">
<mat-option *ngFor="let option of actions" [value]="option">
{{option}}
</mat-option>
</mat-select>
sample.component.ts
actions=['A','B','C'];
onChange() {
//Do something
}
2) La sélection html simple (change)="myFunction()"
fonctionne en angulaire comme:
sample.component.html
<select (change)="onChange()" [(ngModel)]="regObj.status">
<option>A</option>
<option>B</option>
<option>C</option>
</select>
sample.component.ts
onChange() {
//Do something
}
Pour moi (selectionChange)
et le suggéré (onSelectionChange)
n'a pas fonctionné et je ne l'utilise pas ReactiveForms
. Ce que j'ai fini par faire, c'était d'utiliser l' (valueChange)
événement comme:
<mat-select (valueChange)="someFunction()">
Et cela a fonctionné pour moi
<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>
J'ai ce problème aujourd'hui avec mat-option-group. La chose qui m'a résolu le problème est d'utiliser dans un autre événement fourni de mat-select: valueChange
J'ai mis ici un petit code pour comprendre:
<mat-form-field >
<mat-label>Filter By</mat-label>
<mat-select panelClass="" #choosedValue (valueChange)="doSomething1(choosedValue.value)"> <!-- (valueChange)="doSomething1(choosedValue.value)" instead of (change) or other event-->
<mat-option >-- None --</mat-option>
<mat-optgroup *ngFor="let group of filterData" [label]="group.viewValue"
style = "background-color: #0c5460">
<mat-option *ngFor="let option of group.options" [value]="option.value">
{{option.viewValue}}
</mat-option>
</mat-optgroup>
</mat-select>
</mat-form-field>
Version du tapis:
"@ angular / material": "^ 6.4.7",