首页 > 代码库 > angular中ng-repeat ng-if 中的变量的值控制器中为什么取不到
angular中ng-repeat ng-if 中的变量的值控制器中为什么取不到
这个问题的本质是:v-repeat会产生子scope,这时你在控制器里拿值,相当于父scope里面取子scope的值,因为Angular.js中作用域是向上查找的,所以取不到。
操作过程如下:
相关代码如下:
<table> <tr> <th>序号</th><th>姓名</th><th>工资</th><th>操作</th> </tr> <tr> <td>{{$index+1}}</td> <td>{{item.name}}</td> <td><input name="salary" ng-model="salary" /></td> <td><button ng-click="myAlert()">弹出工资</button></td> </tr> </table> <script> QryListCtrl.$inject = [‘$scope‘, ‘$remote‘]; function QryListCtrl($scope, $remote){ $scope.myAlert = function(){ alert($scope.salary); } } </script>
解决方法:
<table> <tr> <th>序号</th><th>姓名</th><th>工资</th><th>操作</th> </tr> <tr> <td>{{$index+1}}</td> <td>{{item.name}}</td> <td><input name="salary" ng-model="$parent.salary" /></td> <td><button ng-click="myAlert()">弹出工资</button></td> </tr> </table>
原理:把子scope中的值通过 $parent属性传递给父scope即可。
angular中ng-repeat ng-if 中的变量的值控制器中为什么取不到
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。