angularJs select绑定的model 取不到值

内容结构         

      一.原因分析

      二. 解决办法 

一.原因分析        
          1.由于原型继承的关系,修改父级对象中的someBareValue会同时修改子对象中的值,但反之则不行。
          2.ng-if 以及 ng-repeat 会创建一个子级作用域,如果在这俩个指令中添加了元素,并增加ng-model指令,那么ng-model对应的作用域属于子级作用域,并非controller注入的$scope对应的作用域。
二.解决办法(推荐使用第一种方式)       
         1.如果将模型对象的某个属性设置为字符串,它会通过引用进行共享,因此在子$scope中修改 属性也会修改父$scope中的这个属性。下面的例子展示了正确的做法:
  <div ng-controller="SomeController">
         {{ someModel.someValue }}
         <button ng-click="someAction()">Communicate to child</button>
         <div ng-controller="ChildController">
         {{ someModel.someValue }}
             <button ng-click="childAction()">Communicate to parent</button>
         </div>
</div>
     angular.module('myApp', [])
     .controller('SomeController', function($scope) {
// 最佳实践,永远使用一个模式 
       $scope.someModel = {
             someValue: 'hello computer'
         }
         $scope.someAction = function() {
             $scope.someModel.someValue = 'hello human, from parent';
}; })
     .controller('ChildController', function($scope) {
         $scope.childAction = function() {
             $scope.someModel.someValue = 'hello human, from child';
         };
}); 
    2.使用父级作用域                            
<select class="form-control m-b" ng-model="$parent.data"  ng-options="item.id as item.name for item in datas">
      <option value="">-- 请选择 --</option>
</select>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值