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>
效果