• 下拉列表select显示ng-options


    js中如何处理:

    it-equipment-list-maintenance-create-controller.js

    'use strict';

    myApp.controller(
    'itEquipmentCreatController', [
    'ItEquipmentCommonService',
    '$scope',
    '$location',
    '$http',
    function(ItEquipmentCommonService,$scope,$location,$http,$timeout) {
    $scope.titleText= "设置项目-IT设备清单";//title show
    $scope.proText="---选项目编号--";==页面中显示为默认值
    //rack
    $scope.backSearch = function(path){
    $location.path(path);
    };
    /**
    *调用service
    */
    ItEquipmentCommonService.queryProNoes($scope);//查询项目编号
    ItEquipmentCommonService.queryProInfo($scope);//根据项目编号,查询项目相关信息
    }
    ]);

    it-equipment-list-maintenance-common-service.js

    'use strict';

    /**
    * ItEquipmentCommonService
    */

    myApp.factory('ItEquipmentCommonService', [ '$resource', '$http',
    function($resource, $http) {
    return new ItEquipmentCommonService($resource, $http);
    } ]);

    function ItEquipmentCommonService(resource, http) {
    //使用resource进行访问
    var actions = {
    'get' : {
    method : 'GET',
    },
    'query' : {
    method : 'GET',
    isArray : true
    },
    'save' : {
    method : 'POST',
    isArray : true,
    },
    'update' : {
    method : 'PUT',
    isArray : true,
    },
    'remove' : {
    method : 'DELETE',
    isArray : true
    }
    };
    /* *查询项目编号列表**/
    var data =[{
    "proNo":"01",
    "proName":"项目1",
    "proType":"01"
    },
    {
    "proNo":"02",
    "proName ":"项目2",
    "proType":"02"
    }];
    this.queryProNoes = function(scope) {
    scope.proNoes = data;
    };
    /**根据项目编号,查询项目相关信息**/
    var info ={
    "proName":"项目名称",
    "proManager":"项目负责人",
    "filePath":"d://files/mypic/1.doc",
    "SIcount":"2",//ST数量
    "daysTri":"10",//差旅无住宿天数
    "travelDays":"20",//差旅住宿天数
    "mealTimes":"60",//餐饮次数
    "transportation":"2563.52", //大工程运输费
    "standbyTimes":"256"
    };
    this.queryProInfo = function(scope) {
    scope.proInfo = info;
    };
    };

    // var FunctionResource = resource('role/queryAll', {},
    // actions);
    // FunctionResource.get(scope.page, function(data) {
    // scope.gridOptions.totalItems = data.page.totalRow;
    // scope.gridOptions.data = data.data;
    // scope.page = data.page;
    // }, function(error) {
    // });

    html中如何处理:

    1 下拉列表中可以显示id-name的格式,这样的格式用+拼接

    <select ng-model="proNo" ng-disabled="isDisable" class="form-control" ng-options="c.proNo +'-'+c.proName for c in proNoes" >

    <option value=" "> {{proText}} </option> 默认值
    </select>

    2 下拉列表中只显示1个值

    <select ng-model="proNo" ng-disabled="isDisable" class="form-control" ng-options="c.proNo for c in proNoes" >

    <option value=""> {{proText}} < /option> 默认值
    </select>

    <select ng-model="proNo" ng-disabled="isDisable" class="form-control" ng-options="c.proNo as c.proNo for c in proNoes" >

    <option value=""> {{ proText}} </option> 默认值
    </select>

    这里的as是什么意思我不懂,哪位知道的话告诉我一声啊

    <select ng-model="proNo" ng-disabled="isDisable" class="form-control" ng-options="c.proNo as c.proName for c in proNoes" >

    <option value=""> {{ proText}} </option> 默认值
    </select>

     js中处理默认被选中:

    $scope.cities=[ 
                    {name:"合肥",id:2}, 
                    {name:"北京",id:3}, 
                    {name:"上海",id:4}, 
                    {name:"舒城", id:5}, 
                    {name:"纽约",id:6}, 
                    {name:"络上几",id:7} 
                ]; 
                
                for(var i in $scope.cities){ 
                    if($scope.cities[ i].id==4){//将d是4的城市设为选中项. 
                        $scope.city=$scope.cities[i]; 
                        break; 
                    } 
                } 

    如上面的代码中,可以在controller层将设置的默认值,设置为列表的第一个选项

    'use strict';

    myApp.controller(
    'itEquipmentCreatController', [
    'ItEquipmentCommonService',
    '$scope',
    '$location',
    '$http',
    function(ItEquipmentCommonService,$scope,$location,$http,$timeout) {
    $scope.titleText= "设置项目-IT设备清单";//title show
    //rack
    $scope.backSearch = function(path){
    $location.path(path);
    };
    /**
    *调用service
    */
    $scope.proText=" ---选项目编号--";==页面中不再显示该值,而是显示for循环中设定的第1个列表值为默认值
    ItEquipmentCommonService.queryProNoes($scope);//查询项目编号
    ItEquipmentCommonService.queryProInfo($scope);//根据项目编号,查询项目相关信息
    for(var i=0;i<=$scope.proNoes.length;i++ ){
    if(i==0){
    $scope.proText =$scope.proNoes[i].proNo+"-"+$scope.proNoes[i].proName;
    break;
    }
    }
    }
    ]);

    下拉列表ng-model中存储的是被选中的值

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <script src="https://cdn.static.runoob.com/libs/angular.js/1.4.6/angular. min.js"></script>
    </head>
    <body>

    <div ng-app="myApp" ng-controller="myCtrl">

    <p>选择一辆车:</p>

    <select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars"></select>
    <p>你选择的是: {{selectedCar.brand}}</p>
    <p>型号为: {{selectedCar.model}}</p>
    <p>颜色为: {{selectedCar.color}}</p>

    <p>下拉列表中的选项也可以是对象的属性。</p>

    </div>

    <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
    $scope.cars = {
    car01 : {brand : "Ford", model : " Mustang", color : "red"},
    car02 : {brand : "Fiat", model : "500", color : "white"},
    car03 : {brand : "Volvo", model : "XC90", color : " black"}
    }
    });
    </script>

    </body>
    </html>

    相关select说明:摘自菜鸟教程:

    AngularJS Select(选择框)

    AngularJS 可以使用数组或对象创建一个下拉列表选项。


    使用ng-options 创建选择框

    在AngularJS中我们可以使用  ng-option  指令来创建一个下拉列表,列表项通过对象和数组循环输出,如下实例:

    实例

    < div  ng-app= "myApp"  ng-controller= "myCtrl" >

    < select  ng-model= "selectedName"  ng-options= "x for x in names" >
    < /select >

    < /div >

    < script >
    var app = angular.module( 'myApp', []);
    app.controller( 'myCtrl',  function($scope) {
        $scope.names = [ "Google",  "Runoob",  "Taobao"];
    }) ;
    < /script >

    尝试一下»

    ng-options 与ng-repeat

    我们也可以使用ng-repeat  指令来创建下拉列表:

    实例

    < select >
    < option  ng-repeat= "x in names" > {{x}} < /option >
    < /select >

    尝试一下»

    ng-repeat  指令是通过数组来循环HTML代码来创建下拉列表,但  ng-options  指令更适合创建下拉列表,它有以下优势:

    使用  ng-options  的选项的一个对象,  ng-repeat  是一个字符串。


    应该用哪个更好?

    假设我们使用以下对象:

    $scope . sites = [ { site : "Google" , url : "http://www.google.com" }, { site : "Runoob" , url : "http://www.runoob.com" }, { site : "Taobao" , url : "http://www.taobao.com" } ];

    ng-repeat  有局限性,选择的值是一个字符串:

    实例

    使用  ng-repeat :

    < select  ng-model= "selectedSite" >
    < option  ng-repeat= "x in sites"  value= "{{x.url}}" > {{x.site}} < /option >
    < /select >

    < h1 >你选择的是:  {{selectedSite}} < /h1 >

    尝试一下»

    使用  ng-options  指令,选择的值是一个对象:

    实例

    使用  ng-options :

    < select  ng-model= "selectedSite"  ng-options= "x.site for x in sites" >
    < /select >

    < h1 >你选择的是:  {{selectedSite.site}} < /h1 >
    < p >网址为:  {{selectedSite.url}} < /p >

    尝试一下»

    当选择值是一个对象时,我们就可以获取更多信息,应用也更灵活。


    数据源为对象

    前面实例我们使用了数组作为数据源,以下我们将数据对象作为数据源。

    $scope . sites = { 
        site01 : "Google" , 
        site02 : "Runoob" , 
        site03 : "Taobao" };

    ng-options  使用对象有很大的不同,如下所示:

    实例

    使用对象作为数据源,  x  为键(key),  y  为值(value):

    < select  ng-model= "selectedSite"  ng-options= " x for (x, y) in sites " >
    < /select >

    < h1 >你选择的值是:  {{selectedSite}} < /h1 >

    尝试一下»

    你选择的值为在key- value  对中的  value

    value  在key- value  对中也可以是个对象:

    实例

    选择的值在key- value  对的  value  中,这是它是一个对象:

    $scope.cars = {
    car01 : {brand :  "Ford", model :  "Mustang", color :  "red"},
    car02 : {brand :  "Fiat", model :  "500", color :  "white"},
    car03 : {brand :  "Volvo", model :  "XC90", color :  "black"}
    };

    尝试一下»

    在下拉菜单也可以不使用  key -value对中的  key  ,直接使用对象的属性:

    实例

    < select  ng-model= "selectedCar"  ng-options= " y.brand  for (x, y) in cars" >
    < /select >

    尝试一下»


  • 相关阅读:
    Java并发编程:并发容器之ConcurrentHashMap(转载)
    Java ConcurrentModificationException异常原因和解决方法
    Java并发编程:同步容器
    Java并发编程:深入剖析ThreadLocal
    错误:The POM for org.codehaus.plexus:plexus-compiler-api:jar:2.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details的解决方法
    maven工程中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
    部署时发出警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:jx-web' did not find a matching property.的解决方法
    [WARNING] The POM for com.tao:jx-service:jar:0.0.1-SNAPSHOT is missing, no dependency information available
    maven工程中警告[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
    Eclipse中Errors occurred during the build最简单的解决方法
  • 原文地址:https://www.cnblogs.com/songyunxinQQ529616136/p/6230139.html
Copyright © 2020-2023  润新知