Angular 4 Select 不要更新 ngModel 的变化

Angular 4 Select don't update on ngModel change

我试图在新值被 selected 后实现,我调用 eventChange() 函数并将 selected 值恢复为默认值。但是会发生什么:ngModel 值更新,但 selected 值保持不变。我应该怎么做才能使 selected 值和 ngModel 值相同?

HTML 文件

<select [(ngModel)]="selectedValue"
       (change)="eventChange()"

>
      <option [disabled]="true"
              [ngValue]="-1">
        Choose an option
      </option>
      <option *ngFor="let item of myList index as i"
              [ngValue]="i"
      >
        {{item.name}}
      </option>
</select>

来自组件文件的函数

selectedValue = -1; //works //Option in select is changed
eventChange(){
    this.selectedValue= -1; //don't work 
    //Function is called, 
    //Value changes
    //But selected Option in Select doesn't change
}

评论: 在 运行ning 网页(刷新)上 select 的第一个值设置正确,如果在组件文件中我将变量 selectedValue 设置为其他索引另一个值是 selected,但它仅适用于 运行,但不适用于函数)

我也发现了这个问题Angularjs: select not updating when ng-model is updated 但是这里是 AngularJS 的答案,在 angular 中使用 ng-options 而不是 ng-repeat 4 我只发现 *ngFor...

更新: 澄清以防万一:正在调用函数,但我想通过 javascript 更改 selected 选项。我通过更改 ngModel 值来尝试此操作,但即使更改了 ngModel 值,selected 选项也不会更改。

使用 ngModelChange 而您不需要 [ngValue]

<select [(ngModel)]="selectedValue"
       (ngModelChange)="eventChange()"