網站搜尋

angular - ControlValueAccessor 和已觸碰


我已經使用三個下拉選單來實作日期選擇器,分別對應日期、月份和年份。這個日期選擇器是一個實作了 ControlValueAccessor 的元件,運作得很好。然而,我希望當任一個下拉選單被觸碰時,這個控制元件能夠暴露出 touched 狀態。

關於觸碰相關的問題有很多,但沒有這個特定問題,這對我來說很奇怪,因為這是你本來就會想做的事情!

我如何公開我的元件的已觸碰狀態?另外,原始、已修改等狀態呢?

答案#1

僅限於已觸碰:如果你的元件擴展自 ControlValueAntecesor,你會有類似的東西

//declare two functions onChange and onTouched
onChange;
onTouched;
//register onChange and onTouched
registerOnChange( fn : any ) : void {
    this.onChange = fn;
}

registerOnTouched( fn : any ) : void {
    this.onTouched = fn;
}

你唯一需要做的就是,當你更改一個下拉選單時調用該函數

this.onTouched()