0

我试图让与离子电池输入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?

回答

1
  1. 第一个问题的答案是,您可以使用ionViewDidLoad(){}此函数来代替您的函数。
  2. 在模糊事件是不是已经被移除,所以你可以代替那个

    ,将工作用这个最新的离子的一部分。

这一切都为我工作希望它也适合你。

+0

使用此功能 –