异步值不绑定在Angular 4 mat-select上

时间:2018-01-23 10:56:53

标签: angular asynchronous data-binding material-design

我正在开发一个带有API连接的Angular应用程序。这是我遇到的代码:

var evt = document.createEvent('KeyboardEvent');
evt.initEvent('keyup', true, true);
var input = document.querySelector('.text input');
input.value = '1111';
input.dispatchEvent(evt);

当我在<mat-select [(value)]="this.item.name" (change)="onFamilySelected()"> <mat-option *ngFor="let subfamily of subfamilies" [value]="subfamily">{{subfamily}}</mat-option> </mat-select> 函数上时,onFamilySelected()未定义。 Chrome的控制台会将其显示为稍后评估。 this.item.name是一个从API异步的字符串数组(我在subfamilies上检索它),它在select上正确显示。

1 个答案:

答案 0 :(得分:2)

您需要在[(ngModel)]中使用[(value)]代替mat-select,如下所示:

<mat-select [(ngModel)]="this.item.name" (change)="onFamilySelected()">

现在onFamilySelected您将成功this.item.name