$scope.selectObjectType = function () {
$scope.selected = []; // clear previous state
$scope.model.allItemsSelected = true; // all are selected unless...
// If any object type is not checked, then uncheck the "allItemsSelected" checkbox
for (var i = 0; i < $scope.model.objectTypes.length; i++) {
if (!$scope.model.objectTypes[i].isChecked) {
//$scope.selected.splice($scope.model.objectTypes[i].value);
$scope.model.allItemsSelected = false;
return;
} else {
if ($scope.selected.indexOf($scope.model.objectTypes[i].value) == -1) {
$scope.selected.push($scope.model.objectTypes[i].value);
}
}
}
};
// Fired when the checkbox "Show All" is checked
$scope.selectAll = function () {
// Loop through all the object types and set their isChecked property
for (var i = 0; i < $scope.model.objectTypes.length; i++) {
$scope.model.objectTypes[i].isChecked = $scope.model.allItemsSelected;
}
};
Всякий раз, когда я нажимаю сначала "Показать активированный" и "Показывать инактивированный" в этом списке, он добавляет в массив (выбранный). Но если я нажму "Show InActivated", как первый. Это не добавление к массиву.
Тот же процесс для удаления.
Пожалуйста, помогите нам выполнить это требование.
Вот вы код в рабочей версии + комментарии, где я изменил ситуацию. Это ссылка на модифицированный плункер.
$scope.selectObjectType = function () {
$scope.selected = []; // clear previous state
$scope.model.allItemsSelected = true; // all are selected unless...
// If any object type is not checked, then uncheck the "allItemsSelected" checkbox
for (var i = 0; i < $scope.model.objectTypes.length; i++) {
if (!$scope.model.objectTypes[i].isChecked) {
//$scope.selected.splice($scope.model.objectTypes[i].value);
$scope.model.allItemsSelected = false;
// return; // if you return here all other select/unselect will be skipped
}
else {
if($scope.selected.indexOf($scope.model.objectTypes[i].value) == -1) {
$scope.selected.push($scope.model.objectTypes[i].value);
}
}
}
};
// Fired when the checkbox "Show All" is checked
$scope.selectAll = function () {
// Loop through all the object types and set their isChecked property
for (var i = 0; i < $scope.model.objectTypes.length; i++) {
$scope.model.objectTypes[i].isChecked = $scope.model.allItemsSelected;
}
$scope.selectObjectType(); // add everything to array after select all - can be optimized
};