我试图在选择新值后做到这一点,我调用 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: select not updates when ng-model is updated 但是这里是 AngularJS 的答案,用于使用 ng-options,而不是 ng-repeat,在 Angular 4 中我发现只有 *ngFor...
更新:澄清以防万一:正在调用函数,但我想通过javascript更改选定的选项。我通过更改 ngModel 值来尝试此操作,但即使 ngModel 值被更改,所选选项也不会改变。