angularjs select

本文介绍了AngularJS中Select指令的多种用法,包括基本下拉菜单、自定义显示名称、选项分组及自定义ngModel值等。通过具体实例展示了如何使用ngOptions属性来实现这些功能。

select 是 AngularJS 预设的一组directive。下面是其官网api doc给出的用法:AngularJS:select
大意是,select中的ngOption可以采用和ngRepeat指令类似的循环结构,其data source可以是array或者是object。针对两种data source又有衍生的好几种用法。但是官网的例子实在是太少了。
下面是针对几个不太容易理解的用法的例子。
先上controller
<!-- 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 array

<select ng-model="selected" ng-options="m.productName for m in model">
<option value="">-- 请选择 --</option>
</select>

效果:

 


说明
usage中的 value 也就是 ng-options 中的 m,而 m 是数组model的一个元素,它是一个变量
usage中的 label 也就是 ng-options 中的m.productName, 其实就是一个 AngularJS Expression


实例二:自定义下拉显示名称
usage: label for value in array

<select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) for m in model">
<option value="">-- 请选择 --</option>
</select>

效果
AngularJS select详细用法

 


可以看到,usage 中的 label 可以根据需求拼接出不同的字符串
实例三: 让选项分组
usage: label group by group for value in array

<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

<select ng-model="selected" ng-options="m.id as m.productName for m in model">
<option value="">-- 请选择 --</option>
</select>

效果

 


说明
这种用法也是select指令最复杂的一种。从效果中可以看出,usage中select的作用就是重新定义ng-model的值。在这里,ng-model等于m.id,当ng-model发生改变的时候,得到的是m.id的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值