ng-options 是 AngularJS 中快速產生 option 的方法,而且 ng-options 使用上非常靈活,因此在不同狀況下使用方法都會有所差異
資料物件
$scope.lunches = [ { name: 'Hamburger', side_dish: 'Corn Soup', category: 'Food', price: 50 }, { name: 'Rice', side_dish: 'Egg', category: 'Food', price: 80 }, { name: 'Pork', side_dish: 'Black Tea', category: 'Food', price: 100 }, { name: 'Shit', side_dish: 'Dog', category: 'Garbage', price: 10 } ];
1.label for value in array
基本下拉選單
<!-- 將名稱帶入選單 --> <select ng-model="selectLunch" ng-options="lunch.name for lunch in lunches"> <option value="">請選擇</option> </select>
自訂下拉選單
<select ng-model="selectLunch" ng-options="(lunch.name + ' (' + lunch.side_dish + ')') for lunch in lunches"> <option value="">請選擇</option> </select>
自訂 value
<select ng-model="selectLunch" ng-options="lunch.name for lunch in lunches track by lunch.price"> <option value="">請選擇</option> </select> {{selectLunch}}
2.label group by group for value in array
加入 optgroup 分類
<!-- 利用 group by 選擇分類 --> <select ng-model="selectLunch" ng-options="lunch.name group by lunch.category for lunch in lunches track by lunch.price"> <option value="">請選擇</option> </select> {{selectLunch}}