Trong Angular Material Design 6, phương thức (change) đã bị loại bỏ. Tôi không thể tìm thấy cách thay thế phương thức thay đổi để thực thi mã trong thành phần khi người dùng thay đổi lựa chọn Cảm ơn!
Trong Angular Material Design 6, phương thức (change) đã bị loại bỏ. Tôi không thể tìm thấy cách thay thế phương thức thay đổi để thực thi mã trong thành phần khi người dùng thay đổi lựa chọn Cảm ơn!
Câu trả lời:
Sự thay đổi nó từ change
thành selectionChange
.
<mat-select (change)="doSomething($event)">
Hiện tại là
<mat-select (selectionChange)="doSomething($event)">
(changeEventChange)
sự kiện để phát hiện khi sự kiện thay đổi thay đổi.
selectionChange
material.angular.io/components/select/api
Nếu bạn đang sử dụng Biểu mẫu phản ứng, bạn có thể nghe các thay đổi đối với điều khiển chọn như vậy ..
this.form.get('mySelectControl').valueChanges.subscribe(value => { ... do stuff ... })
.updateValueAndValidity
kiểm soát, đừng quên vượt qua { emitEvent: false }
để tránh RangeError: Maximum call stack size exceeded
. Mặt khác, cảm ơn vì gợi ý (+1), nó dẫn tôi đến những gì tôi cần.
Đối với:
1) mat-select (selectionChange)="myFunction()"
hoạt động ở dạng góc như:
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) Lựa chọn html đơn giản (change)="myFunction()"
hoạt động ở dạng góc như:
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
}
Đối với tôi (selectionChange)
và đề xuất (onSelectionChange)
không hoạt động và tôi không sử dụng ReactiveForms
. Những gì tôi cuối cùng đã làm là sử dụng (valueChange)
sự kiện như:
<mat-select (valueChange)="someFunction()">
Và điều này đã làm việc cho tôi
<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>
Tôi gặp sự cố này hôm nay với mat-option-group. Điều giúp tôi giải quyết vấn đề đang sử dụng trong sự kiện được cung cấp khác của mat-select: valueChange
Tôi đặt ở đây một đoạn mã nhỏ để bạn hiểu:
<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>
Phiên bản Mat:
"@ angle / material": "^ 6.4.7",