如何设置ng-repeat的所有行在Angular中被选中

How to set all the rows of ng-repeat to be selected in Angular

我有一个显示用户详细信息的简单 ng-repeat。我正在尝试将所有行设置为 selected。

目前我可以使用以下代码手动单击并 select 所有行:

 <tr  ng-repeat="room in classrooms" ng-class="{'selected': room.selected}" ng-click="select(room)">

在控制器中

$scope.select = function(item) {
    item.selected ? item.selected = false : item.selected = true;
}

为了从 selected 行中获取数据,我使用以下逻辑

$scope.getAllSelectedRows = function() 
{
  var x = $filter("filter")($scope.classrooms, 
    {
        selected: true
    }, true);

  console.log(x);
}

更新自@KADIMA 回复

$scope.toggleSelectAll = function()
{
   angular.forEach($scope.classrooms, function(room) {
       room.selected ? room.selected = false : room.selected = true;
    })
}

如果您想 select 您获得的所有数据,您可以使用 angular.forEach() 方法设置 selected 属性。 https://docs.angularjs.org/api/ng/function/angular.forEach

你的情况:

angular.forEach(x, fuction(value) {
  value.selected = true;
}

在您的控制器中设置一个新功能:

$scope.selectAll = function() {
    angular.forEach(classrooms, function(room) {
        room.selected = true
    }
}

然后您可以在 html 中创建一个按钮来调用此函数。