角4选择不上ngModel变化更新(Angular 4 Select don't updat

2019-10-31 05:37发布

我试图做出选择新的价值后,我打电话eventChange()功能,恢复选择价值为默认值。 但是,会发生什么:ngModel值更新,但选择的值保持不变。 我应该怎样做,选择的价值和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
}

评论:在运行网页(刷新)的选择第一个值设置正确,如果组件文件我设置变量了selectedValue其它索引选择其他值,但它只能在运行,而不是在功能)

此外,我发现这个问题Angularjs:当NG-模型更新选择不更新 ,但在这里是一个答案AngularJS使用NG选项,而不是NG重复,在角4只找到* ngFor ...

更新:澄清以防万一:函数被调用,但我想通过JavaScript改变所选的选项。 我尝试这种改变ngModel值,但即使ngModel值cahnged,选择选项不会更改。

Answer 1:

使用ngModelChange,你不需要[ngValue]

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


文章来源: Angular 4 Select don't update on ngModel change