在ng中select的ngModel雙向綁定某個變量,如果這個變量是一個基本數據類型,雙向綁定沒有問題。但是在實際項目中很多情況下都是要根據這個select獲取到一個對象的,如果ngModel直接綁定一個對象就會出問題,代碼如下圖
效果如下圖
我們發現雖然person已經給了默認值,但是選擇框並沒有默認選擇項。其實這個也很好理解,js中對象這種復雜數據類型是不可以直接拿來做比較的,這種比較是比較的對象的指向,所以雖然兩個對象看着數據是一樣的,但是它們並不是相等的。
在ng的表單select中提供了一個compareWith屬性,這個屬性的值是一個比較函數,可以讓我們利用對象中的某個屬性做對比,代碼如下圖
此時就可以根據person中的id做匹配了,效果如下