ng-options的使用

参考:官方文档zhx1991

select 无默认选择一项

<select name="" id="" class="form-control" ng-options="item.id for item in optData" ng-model="selected">
  <!-- item.id是label 显示出来的 item是value 选中的数据object -->
  <option value="">---请选择---</option>
</select>

select 有默认选择一项

  $scope.selected=$scope.optData[1];

select其他

//字符拼接
<select name="" id="" class="form-control"
ng-options="(item.id+‘ ‘+item.ProductName) for item in optData"
ng-model="selected"></select>
//分组 label group by groupName for value in Array
<select name="" id="" class="form-control"
ng-model="selected"
ng-options="item.id group by item.MainCategory for item in optData">
</select>
//下面selected的值为optData的id select as label for value in Array
<select name="" id="" class="form-control"
ng-model="selected"
ng-options="item.id as item.ProductName for item in optData"></select>
//多级列表
<select name="" id="" class="form-control" ng-options="obj.name for obj in people" ng-model="selectedPerson">
</select>
<select name="" id="" class="form-control" ng-model="selectedGenre">
    <option ng-repeat="label in people[selectedPerson.id].interest">{{label}}</option>
</select>

ng-options的内容:

  • for array data sources:

    • labelforvalueinarray
    • selectaslabelforvalueinarray
    • labelgroup bygroupforvalueinarray
    • labeldisable whendisableforvalueinarray
    • labelgroup bygroupforvalueinarraytrack bytrackexpr
    • labeldisable whendisableforvalueinarraytrack bytrackexpr
    • labelforvalueinarray | orderBy:orderexprtrack bytrackexpr(for including a filter with track by)
  • for object data sources:
    • labelfor (key,value) inobject
    • selectaslabelfor (key,value) inobject
    • labelgroup bygroupfor (key,value) inobject
    • labeldisable whendisablefor (key,value) inobject
    • selectaslabelgroup bygroupfor(key,value) inobject
    • selectaslabeldisable whendisablefor(key,value) inobject

自己的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
    <script src="http://cdn.bootcss.com/angular-ui-bootstrap/2.2.0/ui-bootstrap-tpls.js"></script>
    <script src="https://cdn.bootcss.com/angular-i18n/1.5.8/angular-locale_zh-cn.js"></script>
    <script>
        angular.module(‘m1‘,[‘ui.bootstrap‘])
        .controller(‘ngselect‘,function($scope){
            $scope.optData=[
                {id:10001,MainCategory:‘男‘,ProductName:‘水洗T桖‘,ProductColor:‘白‘},
                {id:10002,MainCategory:‘男‘,ProductName:‘干洗毛衣‘,ProductColor:‘黑‘},
                {id:10003,MainCategory:‘女‘,ProductName:‘干洗毛衣‘,ProductColor:‘篮‘},
                {id:10004,MainCategory:‘女‘,ProductName:‘水洗T桖‘,ProductColor:‘红‘}
            ]
        })
        .controller(‘ngselect1‘,function($scope){
            $scope.optData=[
                {id:10001,MainCategory:‘男‘,ProductName:‘水洗T桖‘,ProductColor:‘白‘},
                {id:10002,MainCategory:‘男‘,ProductName:‘干洗毛衣‘,ProductColor:‘黑‘},
                {id:10003,MainCategory:‘女‘,ProductName:‘干洗毛衣‘,ProductColor:‘篮‘},
                {id:10004,MainCategory:‘女‘,ProductName:‘水洗T桖‘,ProductColor:‘红‘}
            ];
            $scope.selected=$scope.optData[1];
        })
        .controller(‘ngselect2‘,function($scope){
            $scope.optData=[
                {id:10001,MainCategory:‘男‘,ProductName:‘水洗T桖‘,ProductColor:‘白‘},
                {id:10002,MainCategory:‘男‘,ProductName:‘干洗毛衣‘,ProductColor:‘黑‘},
                {id:10003,MainCategory:‘女‘,ProductName:‘干洗毛衣‘,ProductColor:‘篮‘},
                {id:10004,MainCategory:‘女‘,ProductName:‘水洗T桖‘,ProductColor:‘红‘}
            ];
            $scope.selected=$scope.optData[1].id;
        })
        .controller(‘ngselect3‘,function($scope){
            $scope.people = [
                    {
                            id: 0,
                            name: ‘张三‘,
                            interest: [
                            ‘爬山‘,
                            ‘游泳‘,
                            ‘旅游‘,
                            ‘美食‘
                        ]
                    },
                    {
                        id: 1,
                        name: ‘李四‘,
                        interest: [
                            ‘音乐‘,
                            ‘美食‘,
                            ‘Coffee‘,
                            ‘看书‘
                        ]
                    },
                    {
                        id: 2,
                        name: ‘王五‘,
                        interest: [
                            ‘音乐‘,
                            ‘电影‘,
                            ‘中国好声音‘,
                            ‘爸爸去哪了‘,
                            ‘非常静距离‘
                        ]
                    },
                    {
                        id: 3,
                        name: ‘小白‘,
                        interest: [
                            ‘游泳‘,
                            ‘游戏‘,
                            ‘宅家里‘
                        ]
                    }
                ];

        })
    </script>
</head>
<body ng-app="m1">
    <div class="container">
        <h1>下拉列表</h1>
        <div ng-controller="ngselect">
            <h4>无默认选择 label for value in array</h4>
            <div class="col-xs-6">
                <select name="" id="" class="form-control" ng-options="item.id for item in optData" ng-model="selected">
                    <!-- item.id是label 显示出来的 item是value 选中的数据object -->
                    <option value="">---请选择---</option>
                </select>
            </div>
            <div class="col-xs-6">
                <input type="text" class="form-control" value="{{selected.id+‘--‘+selected.ProductName+‘--‘+selected.MainCategory}}"  >
            </div>
            <p class="well">添加一个‘option‘</p>
        </div>
        <div ng-controller="ngselect1">
            <h4>默认选择一项</h4>
            <div class="col-xs-6"><select name="" id="" class="form-control" ng-options="item.id for item in optData" ng-model="selected"></select></div>
            <div class="col-xs-6"><select name="" id="" class="form-control" ng-options="(item.id+‘ ‘+item.ProductName) for item in optData" ng-model="selected"></select></div>

            <div class="col-xs-6">
                <select name="" id="" class="form-control" ng-model="selected" ng-options="item.id group by item.MainCategory for item in optData"></select>
            </div>

        </div>
        <div ng-controller="ngselect2">
            <div class="col-xs-6">
                <select name="" id="" class="form-control" ng-model="selected" ng-options="item.id as item.ProductName for item in optData"></select>
                <input type="text" ng-model="selected">
            </div>
        </div>
        <div ng-controller="ngselect3">
            <div class="col-xs-3">
                <select name="" id="" class="form-control" ng-options="obj.name for obj in people" ng-model="selectedPerson">
                </select>
            </div>
            <div class="col-xs-3">
                <select name="" id="" class="form-control" ng-model="selectedGenre">
                    <option ng-repeat="label in people[selectedPerson.id].interest">{{label}}</option>
                </select>
            </div>
        </div>
    </div>
</body>
</html>

  

时间: 2024-08-24 10:37:49

ng-options的使用的相关文章

Flume NG 学习笔记(五)Sinks和Channel配置

一.HDFS Sink Flume Sink是将事件写入到Hadoop分布式文件系统(HDFS)中.主要是Flume在Hadoop环境中的应用,即Flume采集数据输出到HDFS,适用大数据日志场景. 目前,它支持HDFS的文本和序列文件格式,以及支持两个文件类型的压缩.支持将所用的时间.数据大小.事件的数量为操作参数,对HDFS文件进行关闭(关闭当前文件,并创建一个新的).它还可以对事源的机器名(hostname)及时间属性分离数据,即通过时间戳将数据分布到对应的文件路径. HDFS目录路径可

Neural Networks Representation ----- Stanford Machine Learning(by Andrew NG)Course Notes

Andrew NG的Machine learning课程地址为:https://www.coursera.org/course/ml 神经网络一直被认为是比较难懂的问题,NG将神经网络部分的课程分为了两个星期来介绍,可见Neural Networks内容之多.言归正传,通过之前的学习我们知道,使用非线性的多项式能够帮助我们建立更好的分类模型.但当遇特征非常多的时候,需要训练的参数太多,使得训练非常复杂,使得逻辑回归有心无力. 例如我们有100个特征,如果用这100个特征来构建一个非线性的多项式模

嘿!@野兽,你的ng api 掉了 - - angular.forEach

@野兽的 ng api 学习 -- angular.forEach angular.forEach 调用迭代器函数取每一项目标的集合,它可以是一个对象或数组.迭代器函数与迭代器(value.key)一起调用,其中值是一个对象属性或数组元素的值,而数组元素是对象属性的关键或数组元素索引.为函数指定一个可选的上下文. 格式:angular.forEach(obj,iterator,[context]); obj:遍历的对象 iterator:迭代器 [content]: 对象为迭代器函数的上下文(t

【oracle】oracledba4 when you need to change storage options

In which scenarios would you rebuild an index? (Choose all that a pply.) A. when you need to disable the index usage B. when you need to change storage options C. when you need to enable index monitoring D. when you need to move the index to another 

java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFil

项目启动时报错:java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2的jar包版本号为2.1.8,所以类名是没有错误的,而jar包确实加入进去了.jar包加入的方式是通过user library. 问题解决的办法是:将jar包拷贝到WEB-INF下lib文件夹目录,重新启动tomcat问题解决. ================

Kickstart Options

The following options can be placed in a kickstart file. If you prefer to use a graphical interface for creating your kickstart file, use the Kickstart Configurator application. Refer to Chapter 29, Kickstart Configurator for details. Note If the opt

ng build --aot --prod生成文件报错

Cannot read property 'create' of undefined when building with --prod or --aot 解决方案:改变zone.js的版本号为0.8.5: 然后删除dist ng_modules,然后重装下就可以正常使用了. /*更新angular-cli*/npm uninstall -g angular-cli npm cache clean npm install -g @angular/[email protected] /*更新引用r

ng $scope与$rootScope的关系

$scope与$rootScope的关系:①不同的控制器之间 是无法直接共享数据②$scope是$rootScope的子作用域对象$scope的id是随着控制器的加载顺序依次递增,$rootScope的id是1 ③不同控制器之间如何通信??1.借助于$rootScope2.既然子作用域对象可以调用父作用域对象的值或者方法,就可以通过控制器之间的嵌套来实现通信3.事件父->子$scope.$broadcast('eventName',args) 子->父$scope.$emit('eventNa

Allow Pin Swapping Using these Methods options

Frm:http://techdocs.altium.com/display/ADOH/Pin,+Pair+and+Part+Swapping#Pin,PairandPartSwapping-SwapManagerDialog Controlling How the Swaps are Performed on the Schematic In the PCB editor pin, pair and part swaps are performed by exchanging nets on

Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 2)及总结

Exercise 1:Linear Regression---实现一个线性回归 关于如何实现一个线性回归,请参考:http://www.cnblogs.com/hapjin/p/6079012.html Exercise 2:Logistic Regression---实现一个逻辑回归 问题描述:用逻辑回归根据学生的考试成绩来判断该学生是否可以入学. 这里的训练数据(training instance)是学生的两次考试成绩,以及TA是否能够入学的决定(y=0表示成绩不合格,不予录取:y=1表示录