标签:
首先,我們來看看 AngularJS:select API 的 ngOptions 參數說明:
Where:
|
這說明,看了幾遍還是無法理解,尤其是 label 與 select 與 group 的應用部分,無法完整理解,自然也無法活用。而官方文件又沒有太多範例,並沒有把我有疑問的這幾點都實作出範例,所以這才抽空自己寫了 一套完整範例 ,相信看了之後應該可以理解。有興趣的請參考以下網址: http://jsbin.com/ukezuj/5
以下就用文字說明我寫的這幾個範例,以及整理出來的注意事項:
首先,先準備好 Controller 與 Model 物件,這是要提供給 View 用的:
function MySelectCtrl($scope)
{
$scope.Model = [
{
id: 10001,
MainCategory: ‘男‘,
ProductName: ‘水洗T恤‘,
ProductColor: ‘白‘
},
{
id: 10002,
MainCategory: ‘女‘,
ProductName: ‘圓領短袖‘,
ProductColor: ‘黃‘
},
{
id: 10002,
MainCategory: ‘女‘,
ProductName: ‘圓領短袖‘,
ProductColor: ‘黃‘
}];
}
範例 1. 基本下拉選單 : label
for
value
in
array
<select ng-model="Select1" ng-options="m.ProductName for m in Model">
<option value="">-- 請選擇 --</option>
</select>
輸出結果:
範例 2. 自訂下拉選單顯示名稱 : label
for
value
in
array
<select ng-model="Select2" ng-options="(m.ProductColor + ‘ - ‘ + m.ProductName) for m in Model">
<option value="">-- 請選擇 --</option>
</select>
輸出結果:
範例 3. 使用 <optgroup> 依據特定欄位群組下拉選單,並自訂顯示名稱 : label
group by group
for
value
in
array
<select ng-model="Select3" ng-options="(m.ProductColor + ‘ - ‘ + m.ProductName) group by m.MainCategory for m in Model">
<option value="">-- 請選擇 --</option>
</select>
輸出結果:
範例 4. 自訂 select 的 ngModel 的值 : select
as
label
for
value
in
array
<select ng-model="Select4" ng-options="m.id as m.ProductName for m in Model">
<option value="">-- 請選擇 --</option>
</select>
輸出結果:
請注意 : 此範例從輸出畫面完全看不出變化,但這時如果你去查 Controller 查詢 $scope.Select4 的值,如果你選中的是如上圖的「水洗T恤」,得到的 $scope.Select4 就會變成 10001 。
另外一個需要注意的是,請不要費心去查看這個 <select> 每一個 <option> 選項的 value 值,我指的是在 DOM 物件中每個 <option value="xxx"> 的 value 部分,因為這邊的值永遠會是 AngularJS 裡面內部物件的陣列元素索引,並不會是你所指定的 select ( m.id ) 的值。
相信有了上述範例,應該可以更加理解 select directive 裡 ngOptions 的實際用法。
标签:
原文地址:http://www.cnblogs.com/wpfblogs/p/4565138.html