angular的ng-options
2015-09-11 17:19
337 查看
原文地址:
http://my.oschina.net/gejiawen0913/blog/188539#OSC_h2_1
select是
AngularJS 预设的一组directive。下面是其官网api doc给出的用法:AngularJS:select
大意是,
select中的
ngOption可以采用和
ngRepeat指令类似的循环结构,其data
source可以是array或者是object。针对两种data source又有衍生的好几种用法。但是官网的例子实在是太少了。
下面是针对几个不太容易理解的用法的例子。
先上controller
[code]<!-- 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[code]<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[code]<select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) for m in model"> <option value="">-- 请选择 --</option></select>
效果
说明可以看到,usage 中的 label 可以根据需求拼接出不同的字符串
实例三: 让选项分组
usage: label group by group for value in array[code]<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[code]<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的值
select是
AngularJS 预设的一组directive。下面是其官网api doc给出的用法:AngularJS:select大意是,
select中的
ngOption可以采用和
ngRepeat指令类似的循环结构,其data
source可以是array或者是object。针对两种data source又有衍生的好几种用法。但是官网的例子实在是太少了。下面是针对几个不太容易理解的用法的例子。先上controller
[code]<!-- 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[code]<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[code]<select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) for m in model"> <option value="">-- 请选择 --</option></select>效果说明可以看到,usage 中的 label 可以根据需求拼接出不同的字符串
实例三: 让选项分组
usage: label group by group for value in array[code]<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[code]<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的值
相关文章推荐
- Linux下安装gcc遇到的问题,待解决
- html5 手机网站 meta/link标签,html5 meta全解
- maven项目使用外部tomcat7并进行远程热部署
- Linux 下编译安装软件,找不到共享库 xx.so 的解决办法
- 29个你必须知道的Linux命令
- Linux下C++的多线程编程
- NSRunLoop漫谈
- Tomcat Ip 限制
- nginx屏蔽指定URI
- thinkphp+apache 去掉index.php
- CentOS安装sctp协议
- CentOS安装sctp协议
- 【Developer Log】web的版本管理
- CentOS6.5 安装GNS3
- Storm日志分析调研及其实时架构
- 29个你必须知道的Linux命令
- CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证
- 从何处开始阅读linux kernel源代码
- 卸载金山快盘后残留的kuaipanshellext.dll和kuaipanshellext64.dll两个文件如何删除
- Nginx安装及配置文件nginx.conf详解