Angular 6材料衬垫选择更改方法已删除

角度材料设计6中,删除了(更改)方法。 当用户更改选择时,我应该如何替换Change方法以执行组件中的代码?

225593 次浏览

如果您使用的是反应式表单,则可以侦听选择控件的更改,如下所示..

this.form.get('mySelectControl').valueChanges.subscribe(value => { ... do stuff ... })

将其从change更改为selectionChange

<mat-select (change)="doSomething($event)">

是现在

<mat-select (selectionChange)="doSomething($event)">

https://material.angular.io/components/select/api.

对我来说,(selectionChange)和建议的(onSelectionChange)不起作用,我没有使用ReactiveForms。我最终使用的是(valueChange)事件,如:

<mat-select (valueChange)="someFunction()">

这对我很有效。

用于:

1)MAT-SELECT(selectionChange)="myFunction()"以角度方式工作:

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>

样本.组件.ts

actions=['A','B','C'];
onChange() {
//Do something
}

2)简单HTML选择(change)="myFunction()"在Angular中的工作方式为:

sample.component.HTML

<select (change)="onChange()" [(ngModel)]="regObj.status">
<option>A</option>
<option>B</option>
<option>C</option>
</select>

样本.组件.ts

onChange() {
//Do something
}

我今天在MAT-OPTION-GROUP遇到了这个问题。 解决我这个问题的东西是在其他提供的mat-select事件中使用的: 价值变化

我在这里放了一个小代码来理解:

<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>


MAT版本:

“@角度/材质”:“^6.4.7 ”,

对我来说,...(click)="myFunction()"...起作用;上面什么都没有。

<;mat-select(change)=";dosomething($event)";>;

是现在 <;mat-select(selectionchange)=";dosomething($event)";>;