ng-repeat不访问$ scope变量

时间:2015-11-09 10:13:07

标签: angularjs angularjs-ng-repeat

$ scope.new是一个变量..我试图在ng-repeat中访问但是ng-repeat将'new'视为局部变量并仅在其范围内更改其值...我想特别给出索引到$ scope.new变量...不使用函数...谢谢....

<html>
<style>
.yoyo{font-size:30px;}
</style>


<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope) {
$scope.new=0;
});
</script>

<body>

<div data-ng-app="myApp" ng-controller="customersCtrl" data-ng-init="names=['Jani','Hege','Kai']">
  <p>Looping with ng-repeat:</p>
  <ul>
    <li data-ng-repeat="x in names" ng-click="new=$index" ng-class="yoyo:new==$index">
      {{ x }}{{$index}}{{new}}
    </li>
  </ul>


</body>
</html>

1 个答案:

答案 0 :(得分:3)

ng-repeat使用隔离范围,因此当您尝试更新ng-repeat内的新变量时,它会更新本地$ scope 在ng-click指令中使用$ parent.new而不是new。请参阅下面的工作代码片段 -

&#13;
&#13;
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope) {
$scope.new=0;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body>

<div data-ng-app="myApp" ng-controller="customersCtrl" data-ng-init="names=['Jani','Hege','Kai']">
  <p>Looping with ng-repeat:</p>
  <ul>
    <li data-ng-repeat="x in names" ng-click="$parent.new=$index" ng-class="yoyo:new==$index">
      {{ x }}{{$index}}{{new}}
    </li>
  </ul>
  
  </div>


</body>
&#13;
&#13;
&#13;

希望这有帮助!