如何设置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 中创建一个按钮来调用此函数。
我有一个显示用户详细信息的简单 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 中创建一个按钮来调用此函数。