我試圖讓與離子電池輸入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?