Di Angular Material Design 6, metode (ubah) telah dihapus. Saya tidak dapat menemukan cara mengganti metode perubahan untuk mengeksekusi kode dalam komponen ketika pengguna mengubah pilihan Terima kasih!
129
Mengubahnya dari change
menjadi selectionChange
.
<mat-select (change)="doSomething($event)">
sekarang
<mat-select (selectionChange)="doSomething($event)">
(changeEventChange)
acara untuk mendeteksi kapan perubahan acara berubah.selectionChange
material.angular.io/components/select/apiJika Anda menggunakan formulir Reaktif Anda dapat mendengarkan perubahan pada kontrol pilih seperti itu ..
sumber
.updateValueAndValidity
kontrol jangan lupa{ emitEvent: false }
untuk menghindariRangeError: Maximum call stack size exceeded
. Di sisi lain, terima kasih atas petunjuk (+1), ini menuntun saya ke apa yang saya butuhkan.Untuk:
1) mat-pilih
(selectionChange)="myFunction()"
bekerja dalam sudut seperti:sample.component.html
sample.component.ts
2) Pilihan html sederhana
(change)="myFunction()"
berfungsi dalam sudut seperti:sample.component.html
sample.component.ts
sumber
Bagi saya
(selectionChange)
dan yang disarankan(onSelectionChange)
tidak berhasil dan saya tidak menggunakanReactiveForms
. Apa yang akhirnya saya lakukan adalah menggunakan(valueChange)
acara seperti:Dan ini berhasil untuk saya
sumber
<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>
Saya mengalami masalah ini hari ini dengan mat-option-group. Hal yang memecahkan masalah saya adalah menggunakan acara lain yang disediakan mat-pilih: valueChange
Saya taruh di sini sedikit kode untuk memahami:
Versi Mat:
sumber