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()"
我试图在新值被 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()"