角和离子 - 为什么这个指令没有注册离子输入变化?
问题描述:
我试图让与离子电池输入this directive工作,但我有两个问题,我不知道如何解决:角和离子 - 为什么这个指令没有注册离子输入变化?
1 - 无法加载时,将显示离子输入面具 - 问题是因为输入元素在一段时间后才出现在nativeElement的childNodes中,所以我没有找到实现的钩子。要尝试解决它,我把一些代码的setTimeout里面,这样我能找到的包裹输入:
public ngOnInit():void {
setTimeout(()=>{
this._element=this.findElement();
resolvedPromise.then(() => this._applyValueChanges());
},1000);
}
findElement():any{
if (this._elementRef.nativeElement.tagName === 'INPUT') {
return this._elementRef.nativeElement
} else {
let index;
for(index=0;index<this._elementRef.nativeElement.childNodes.length;index++)
if (this._elementRef.nativeElement.childNodes[index].tagName === 'INPUT')
return this._elementRef.nativeElement.childNodes[index];
}
}
2 - 另一个问题是,registerOnChange方法不会被调用,这样我不能更新模型去除特殊字符:
public registerOnChange(fn:any):void {
this._onChange = fn;
return;
}
所以,我想知道:我怎样才能使用离子输入元素registerOnChange工作?有没有办法可以在onInit中找到包装的输入而不使用setTimeout?
答
- 第一个问题的答案是,您可以使用ionViewDidLoad(){}此函数来代替您的函数。
-
在模糊事件是不是已经被移除,所以你可以代替那个
,将工作用这个最新的离子的一部分。
这一切都为我工作希望它也适合你。
+0