AngularJS select详细用法
字数 599 字 阅读时长 ≈ 2 分钟
转自:http://my.oschina.net/gejiawen0913/blog/188539#OSC_h2_2,相当实用,尤其是实例3和4。
select
是 AngularJS 预设的一组directive。下面是其官网api doc给出的用法:AngularJS:select
大意是,select
中的ngOption
可以采用和ngRepeat
指令类似的循环结构,其data source可以是array或者是object。针对两种data source又有衍生的好几种用法。但是官网的例子实在是太少了。
下面是针对几个不太容易理解的用法的例子。
先上controller
1 | function selectCtrl($scope) { |
实例一:基本下拉效果
usage: label for value in array
1 | <select ng-model="selected" ng-options="m.productName for m in model"> |
说明
usage中的 value 也就是 ng-options 中的 m,而 m 是数组model的一个元素,它是一个变量
usage中的 label 也就是 ng-options 中的
m.productName
, 其实就是一个 AngularJS Expression
实例二:自定义下拉显示名称
usage: label for value in array
1 | <select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) for m in model"> |
说明
- 可以看到,usage 中的 label 可以根据需求拼接出不同的字符串
实例三: 让选项分组
usage: label group by group for value in array
1 | <select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) group by m.mainCategory for m in model"> |
说明
- 这里使用了
group by
,通过$scope.model
中的mainCategory
字段进行分组
实例四:自定义ngModel
的值
usage: select as label for value in array
1 | <select ng-model="selected" ng-options="m.id as m.productName for m in model"> |
说明
- 这种用法也是select指令最复杂的一种。从效果中可以看出,usage中select的作用就是重新定义
ng-model
的值。在这里,ng-model等于m.id,当ng-model
发生改变的时候,得到的是m.id
的值
参考
♦ 本文固定连接:https://www.gsgundam.com/archive/2014-10-11-angularjs-selecte-label-usage/
♦ 转载请注明:GSGundam 2014年10月11日发布于 GSGUNDAM砍柴工
♦ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
♦ 原创不易,如果页面上有适合你的广告,不妨点击一下看看,支持作者。(广告来源:Google Adsense)
♦ 本文总阅读量次