Как сделать так, чтобы последний не отмеченный флажок оставался отмеченным?

0

У меня есть несколько флажков, которые проверяются. Тем не менее, я хочу, чтобы, если все остальные флажки сняты, кроме одного, и вы попытаетесь снять отметку с последнего флажка, появится ошибка, и этот флажок не будет снят. Это была моя попытка:

Checkbox.html:

<input id ="selectDatasource" class="checkboxPosition" type="checkbox" ng-checked="datasourcesSelected.indexOf(datasource.name) > -1 && datasourcesSelected.length > 1" ng-click="toggleSelection(datasource)"> 

Checkbox.js:

$scope.datasourcesSelected = ['a', 'b', 'c']

//Listen for checked datasources
$scope.toggleSelection = function(datasource){
    if($scope.datasourcesSelected.length === 1){
        alert('Error!')
        //Make sure that checkbox is not unchecked.
        return;
    }
    $scope.checkboxItem = $scope.datasourcesSelected.indexOf(datasource.name);
    //Currently selected within selected
    if($scope.checkboxItem > -1){
        $scope.datasourcesSelected.splice(i, 1);
    }
    else{
        $scope.datasourcesSelected.push(datasource.name);
    }
}

Прямо сейчас у меня появляется предупреждение, но последний флажок отмечен, когда я нажимаю на него. Я думал, что, поскольку мой datasourcesSelected массив не обновляется, флажок будет проверяться, но это не так. Есть ли способ, который я могу сохранить, чтобы последний флажок не отмечен, чтобы оставаться включенным? Благодарю!

Теги:
checkbox

1 ответ

0

Вы пытались использовать ng-change вместо ng-click?

https://docs.angularjs.org/api/ng/directive/ngChange

Если вы посмотрите снова, вам может потребоваться заменить (i) в методе сплайсинга, чтобы использовать $ scope.checkboxItem, являющийся указателем в массиве.

Не уверен, что он используется в другом месте, но отражается на текущем фрагменте кода, $ scope.checkboxItem может быть просто переменной области видимости функции?

  • 0
    Привет, вы можете уточнить, что вы подразумеваете под $ scope.checkboxItem может быть просто переменной области видимости функции?
  • 0
    Кроме того, checkboxItem не используется нигде, кроме как здесь, в этой части кода :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню