Angular 裡面的 two-way binding,到底應該是要避免使用呢? 還是正常使用也無訪呢?
我現在已經搞不清楚到底要避免適用還是沒有差別,有人有任何想法嗎?
1個讚
2 way binding 說穿了不就是官方提供的 property binding + event binding 的語法糖而已嗎?
我是覺得沒差,畢竟這個 AngularJS 的 2 way binding 底層的實作方式不一樣。
如果要避免使用的話,那 property binding + event binding 應該也一樣要避免使用了(笑
以下是我的看法:
[(ngModel)] 這個語法糖被歸在 FormsModule 內,使用時要特別 import 進來,
所以它應該比較適合應用在表單需求操作上,
因為雙向繫結代表著"值"的變更都會直接改變原始資料,具有不可逆的特點,
一般填寫表單都是在最後儲存時在統一處理,
中間過程若取消,大部分情況下這些資料也不需要還原,可以直接捨棄。
相對的,有些設定頁面,我們需要在變更時立即套用效果,
我們可能還是要依賴事件來處理"變更",
這時候可能就會比雙向繫結來的方便,別人在維護上也會比較容易理解。
1個讚
延伸問題:
如果我們自己用 component 客製一個控制項,要怎麼讓 ngModel 可以綁定到 component 內特定的屬性與事件?
要自己用accessor去實作繫結如何處理,細節要自己搜尋相關資料,我沒有深入研究。
1個讚
關鍵字: ControlValueAccessor
可以參考一下這篇文章
3個讚
在form的表單中,two-way binding還蠻好用的耶
(中毒已深XD)