Sub form 的initial value 問題

這是我的code.

經歷千辛萬苦終於做到custom form control, 可是每當網頁refresh 時就會出現以下這句:

 callTreeEntryForm.value={ "attributesForm": null }

可是當我清空division 這個field 時,就會出現:

callTreeEntryForm.value={ "attributesForm": { "division": "" } }

請問如何設定attributesForm的initial value使它有division這個child 呢?
因為在不改動form情況下, 按save button,可以在console看到,this.callTreeEntryForm的值是:

{attributesForm: null}

我試過在attributesForm.component.ts 內的ngOnInit 動手腳,但不成功。
另外,因為在attributesForm 的constructor 內 callTreeEntry是等undefined, 所以不能設定this.division這個form control.

那你的 custom form control 在回傳的值就會是直接回傳, onChanges(value) 這樣

我想做到効果是當網頁refresh 之後,就出現以下:

callTreeEntryForm.value={ "attributesForm": { "division": "" } }

而不是:

 callTreeEntryForm.value={ "attributesForm": null }

基本概念是,外部 formControl/ngModel 收到的值,就是內部 onChanges 傳進去的值

謝謝你提點
我將原本的 registerOnChange(fn: any) method

registerOnChange(fn: any) {
   this.attributesForm.valueChanges.subscribe(fn);
}

改成這樣就OK 了

registerOnChange(fn: any) {
 this.attributesForm.valueChanges.subscribe(fn);
 this.division.setValue(this.callTreeEntry.division);
 console.log("registerOnChange");
}

我做到了 :rofl: :heart_eyes:

1個讚