Я столкнулся с небольшой проблемой, связанной с ng-классом. У меня есть список флажков. Для этого списка я устанавливаю ng-class следующим образом, если установлен флажок, задайте собственный класс css для выбранного элемента. Также у меня есть флажок «Выбрать все», если я нажму на это поле, класс css применяется для всех элементов, но когда я отменю выбор всех, класс css не изменяется для элементов, которые ранее были выбраны вручную.ng-класс не работает должным образом для выбранного флажка
Я создал plunker, чтобы показать свою проблему.
Что мне не хватает и где моя ошибка? Заранее спасибо.
HTML
<table class="table table-hover">
<tr ng-class="{'selected': allCategoriesSelected, 'default': !allCategoriesSelected}">
<td class="col-md-2">
<input type="checkbox" ng-click="selectAllCategories()" >
</td>
<td class="col-md-10" ng-if="!allCategoriesSelected">Select all</td>
<td class="col-md-10" ng-if="allCategoriesSelected">Deselect all</td>
</tr>
<tr ng-repeat="category in categories | orderBy : 'id'" ng-class="{'selected': allCategoriesSelected, 'default': !allCategoriesSelected}" >
<td class="col-md-2">
<input type="checkbox" ng-model="allCategoriesSelected" ng-click="updateCategory(category.id)">
</td>
<td class="col-md-10">{{ category.name }}</td>
</tr>
</table>
JS
$scope.selectedCategories = [];
$scope.allCategoriesSelected = false;
$scope.selectAllCategories = function() {
$scope.allCategoriesSelected = !$scope.allCategoriesSelected;
};
$scope.updateCategory = function(categoryId) {
if ($scope.selectedCategories.indexOf(categoryId) > -1) {
$scope.selectedCategories.splice($scope.selectedCategories.indexOf(categoryId), 1);
} else {
$scope.selectedCategories.push(categoryId);
}
};
plunker другая проблема: если вы выбираете одну категорию, а затем выбрать все категории, класс правильно установлен, но флажки не проверяются. проблема только в плункер или проблема также в вашем коде? –
@Jon_Snow fixed plunker – antonyboom
Вы хотите, чтобы элементы, которые ранее были выбраны, чтобы не сниматься, при нажатии «Отменить выбор всех» или вы хотите, чтобы класс изменился? –