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

使用此功能 –