如何在ng-repeat中更改$ scope值?

时间:2016-10-11 14:23:14

标签: javascript angularjs

我有div-repeat:

   127.0.0.1 computer-name.local

我使用ng-model pass值来选中/取消选中复选框。 我有一个按钮,当点击它时,所有复选框都取消选中。我使用$ scope.abc = false;但没有变化。如何更改ng-model值?

2 个答案:

答案 0 :(得分:4)

复选框共享相同的模型。更改列表以包含每个对象的checked属性,然后使用它来处理检查哪个对象。如下所示:

<div ng-repeat="a  in list" ng-click="a.checked = !a.checked">
     //some code here
     <input type="checkbox" ng-model="a.checked">
</div>
<button ng-click="reset()"> reset </button>

答案 1 :(得分:0)

您的“abc”变量是全局变量。您必须将状态存储为已建议的每个对象的属性。

这是一个工作示例:

HTML     

  <div ng-repeat="item in list" ng-click="item.checked = !item.checked">
     <input type="checkbox" ng-model="item.checked">{{item.value}} (clickme!)
  </div>
  <button ng-click="reset()"> reset </button>

</div>

JS

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    $scope.list = [{value: 1}, {value: 2}, {value: 3}];
    var length = $scope.list.length;
    $scope.reset = reset;

    function reset() {

      for (var i=0; i<length; i++) {
       var item = $scope.list[i];
       item.checked = false;
      }
    }
}

(你可以在行动here中看到它)