使用Angular IMask,我正在用程序更新具有IMask的字段。所以我得到了错误:
"元素值已在掩码之外更改。使用mask.updateValue((同步掩码以正常工作">
我用程序更改了输入,因为我有一个与之相关的日期选择器(Angular Bootstrap ng Bootstrap模块中的NgbDatepicker组件(。
如何获取imask对象以便调用updateValue((?我只在模板上设置了组件,所以组件中没有任何可以访问的对象。
除了访问IMask对象之外,还有其他方法可以删除该消息吗?如果有的话,请告诉我。
您可以通过使用ViewChild
属性装饰器查询IMask指令来获取IMask实例,然后您可以通过maskRef
属性从指令访问IMask示例。
即
@Component({
template: `
<input type="text"
[imask]="maskConfig"
>
`,
})
export class MyMaskComponent {
maskConfig = {...}
@ViewChild(IMaskDirective, { static: false })
iMask: IMaskDirective<IMask.MaskedNumber>;
ngAfterViewInit(): void {
this.iMask.maskRef.updateValue();
}
}
您可以对此组件使用ViewChild,也可以使用Angular LifeCycle中的ngOnChanges并过滤此引用的更改以获取当前对象。