請問各位大大, 我想從DB或Json.json檔案訂閱取得資料後放進select選單裡, 然後再默認選取我要的值。
這樣應該怎麼做呢?
我遇到的問題是:
首先異步訂閱Json.json檔案取值, 但由於是異步的, 視圖可能在取得值之前就渲染完成, 因此值還沒放進select裡View就渲染完了。
請教各位大大們,感謝感謝。
你有使用 Router 嗎? 還是你有試過使用 ngIf 嗎?
謝謝Kevin
目前我是
- 先在constructor() { 這裡先初始 this.formModel = this.fb.group({}) }
- 然後再ngOnInit() { 調Json,json 資料 }
- View的部分:
<select formControlName=“xx” [ngModel]=“modelValue1” (ngModelChange)=“onChange()” >
<option [ngValue]=“colors” *ngFor=“let colors of color”>
{{colors.showText}}
這裡用modelValue1 綁定預設值, 然後onChange() 改變值
這邊onChange()改變值時因為回傳改變後的所有資料所以視圖會再次變更, 但由於變更所以 (ngModelChange)又會被再次觸發造成無限觸發, 因此onChange() 這邊多給一條件如果資料相同不執行更新資料。
目前以上做法不知道正確與否, 暫時解決問題。
如有哪裡不正確再麻煩各位指導, 非常感謝。
你都用 ReactiveForm 了,為什麼還要去處理ModelChange 的事件? 這樣很奇怪阿
挑一個使用吧
誠如 Kevin 大所說,Reactive Form 與 Template Form 不要混用,你的問題純粹是 Reactive Form 不夠熟練而已。
我寫了個範例,你再參考看看吧!