Angular 4选择不更新ngModel更改

时间:2018-02-06 01:29:50

标签: javascript html angular select ngmodel

我试图在选择新值后,调用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
}

注释: 在运行网页(刷新)时,正确设置select的第一个值,如果在组件文件中我将变量 selectedValue 设置为其他索引,则选择其他值,但它仅在运行时有效,但在函数中不起作用)

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

更新: 澄清以防万一:函数被调用,但我希望通过javascript更改选择的选项。我通过更改ngModel值来尝试这一点,但即使ngModel值为cahnged,选择的选项也不会改变。

1 个答案:

答案 0 :(得分:1)

使用 ngModelChange ,您不需要 *targ++ = *arg++;

[ngValue]