我已经使用input:
创建了自己的数字微调器组件实现<span ...>
<input
type="text"
class="form-control ui-spinner-input"
#spinnerModel="ngModel"
[ngModel]="parameter.value"
(ngModelChange)="onNgModelChange($event)"
[spinnerValidator]="parameter"
/>
<button ...
我想在某些情况下修改输入值,例如,用户输入超过最大限制的值,我想将值设置为允许的最大值。当我在onNgModelChange中执行此操作时,验证存在问题。
例如,最大值为100,但是用户输入150,这就是:
如何正确修改该值?
修改
有一种验证方法:
onNgModelChange(newObj: any) {
...
setTimeout(() => {
this.spinnerModel.control.setValue(numericValue, {onlySelf: false, emitEvent: true, emitModelToViewChange: true, emitViewToModelChange: false});
}, 0);
...
}
其中numericValue是应该应用的篡改值。 虽然GUI中存在一个小故障,因为首先处理无效值,GUI会在几分之一秒内注意到它,然后应用新的/有效值。