AngularJs ng-options

1. select标签中的ng-model 使用时注意,选择的结果

<form class="form-horizontal container" ng-app="myApp" ng-controller="validateCtrl"
        name="myForm" novalidate>
    <div class="form-group">
        <label class="control-label">地区:</label>
        <!--如果不指定x.id, ng-model选择的结果是object对象-->
        <select ng-model="areaID" ng-options="x.name for x in items"></select>
        <span class="text-danger" ng-show="myForm.areaID.$dirty && myForm.areaID.$invalid">
            <span ng-show="myForm.areaID.$error.required">地区是必须的</span>
        </span>
    </div>
</form>

    var app = angular.module('myApp', []);
    app.controller('validateCtrl', function ($scope, $timeout) {
        $scope.items = [
            { id: 1, name: '山东' },
            { id: 2, name: '山西' }
        ];
        $scope.areaID = 1;
        $scope.$watch('areaID', function (newValue) {
            console.info(newValue);
        });
    });

选择的结果是:object


<div class="form-group">
    <label class="control-label">地区:</label>
    <!-- x.id as x.name 用来指定选择结果为ID,显示的是name  --> 
    <select ng-model="areaID" ng-options="x.id as x.name for x in items"></select>
    <span class="text-danger" ng-show="myForm.areaID.$dirty && myForm.areaID.$invalid">
        <span ng-show="myForm.areaID.$error.required">地区是必须的</span>
    </span>
</div>
选择的结果是ID


2.使用group by分组显示

<form class="form-horizontal container" ng-app="myApp" ng-controller="validateCtrl"
        name="myForm" novalidate>
    <div class="form-group">
        <label class="control-label">动物:</label>
        <!--使用group by 可以分组显示-->
        <select ng-model="AniID" ng-options="x.id as x.name group by x.sex for x  in animals"></select>
    </div>
</form>
    var app = angular.module('myApp', []);
    app.controller('validateCtrl', function ($scope, $timeout) {
        $scope.animals = [
          {
              id: '00001',
              name: '猫',
              sex: '雌',
              food: '鱼',
              favor: '玩球'
          },
          {
              id: '00002',
              name: '狗',
              sex: '雄',
              food: '骨头',
              favor: '接盘子'
          },
          {
              id: '00003',
              name: '兔',
              sex: '雌',
              food: '胡萝卜',
              favor: '刨洞'
          },
          {
              id: '00004',
              name: '狮',
              sex: '雄',
              food: '肉',
              favor: '猎物'
          }
        ];
        $scope.AniID = '00004';
        $scope.$watch('AniID', function (newValue) {
            console.info(newValue);
        });
    });



3.在Mvc中后台输出ng-options数据内容如下:

<select class="form-control" name="PageType" ng-model="entity.PageType" 
        ng-options='x.Key as x.Value for x in @Html.Raw(Enums.GetList<Enums.PageType>().ToList().ToJson())'></select>
运行结果如下:

注意,此处内容外部使用单引号包裹,也就是ng-options='xxx'




更多:

AngularJs select绑定数字类型问题 

AngularJS阻止事件冒泡$event.stopPropagation() 

AngularJs checkbox绑定

AngularJS动画(一)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值