select
是 AngularJS 預設的一組directive。下面是其官網api doc給出的用法:AngularJS:selectphp
大意是,select
中的ngOption
能夠採用和ngRepeat
指令相似的循環結構,其data source能夠是array或者是object。針對兩種data source又有衍生的好幾種用法。可是官網的例子實在是太少了。html
下面是針對幾個不太容易理解的用法的例子。angularjs
先上controllerexpress
<!-- lang: js -->
function selectCtrl($scope) { $scope.selected = ''; $scope.model = [{ id: 10001, mainCategory: '男', productName: '水洗T恤', productColor: '白' }, { id: 10002, mainCategory: '女', productName: '圓領短袖', productColor: '黑' }, { id: 10003, mainCategory: '女', productName: '短袖短袖', productColor: '黃' }]; }
usage: label for value in arrayapi
<!-- lang: html --> <select ng-model="selected" ng-options="m.productName for m in model"> <option value="">-- 請選擇 --</option> </select>
效果:數組
說明ide
m.productName
, 其實就是一個 AngularJS Expressionusage: label for value in arrayui
<!-- lang: html --> <select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) for m in model"> <option value="">-- 請選擇 --</option> </select>
效果spa
說明code
usage: label group by group for value in array
<!-- lang: html --> <select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) group by m.mainCategory for m in model"> <option value="">-- 請選擇 --</option> </select>
效果
說明
group by
,經過$scope.model
中的mainCategory
字段進行分組ngModel
的值usage: select as label for value in array
<!-- lang: html --> <select ng-model="selected" ng-options="m.id as m.productName for m in model"> <option value="">-- 請選擇 --</option> </select>
效果