TypeError:el.inputmask._valueGet不是函数maskScope @ http:// localhost:4200
问题描述:
我正在使用Inputmask
包中的角2.0。我添加了一个带有掩码的日期字段。当我第一次打开该页面时。那么没有错误发生,它工作正常。TypeError:el.inputmask._valueGet不是函数maskScope @ http:// localhost:4200
但是,当我重新访问页,然后它告诉我下面的错误:
ERROR Error: Uncaught (in promise): TypeError:
el.inputmask._valueGet
is not a function [email protected]http://localhost:4200/0.chunk.js:1391:91
import Inputmask from "inputmask";
@Component({
template: `
<input type="text" [formControl]="member_since" data-inputmask="'alias':'date'">
`
})
...
ngOnInit() {
Inputmask().mask(document.querySelectorAll("input"));
}
答
您应该使用ngAfterViewInit
生命周期挂钩,而不是ngOnInit
。视图初始化后,你可以肯定的是所有的元素存在:
ngAfterViewInit() {
Inputmask().mask(document.querySelectorAll("input"));
}
这显然是不建议的方式做到这一点,利用querySelectorAll
。这样它就会选择整个文档中的所有input
元素。更好的办法是创建一个模板引用变量,并使用ViewChild
将其导入到组件中。
@Component({
template: `<input type="text" data-inputmask="'alias':'date'" #inputDate>`
})
export class InputDateComponent {
@ViewChild('inputDate')
public inputDate: ElementRef;
ngAfterViewInit() {
Inputmask().mask(this.inputDate.nativeElement);
}
}
更妙的是创建一个指示,但我会离开,你要搞懂这个问题
请提供您的相关代码。 – echonax
In Component import inputmask from“inputmask”; ());}};}}};}}};}} } in view page –