У меня есть следующий плунджер:
http://plnkr.co/edit/ZJq0Qy3j5nGr1eJ9f9QA?p=preview
То, что я хотел бы сделать, - включить кнопку, если установлен хотя бы один флажок.
<button class="btn btn-danger" ng-click="removeSelectedRows()">Remove Selected Rows</button>
Это отлично работает:
<button ng-disabled="mySwitch">Click</button>
<input type="checkbox" ng-model="mySwitch">
но когда я применяю его к моему примеру, он ничего не делает.
Любой совет?
Пожалуйста, проверьте этот плунж: http://plnkr.co/edit/WpK2KXtAJC3gfl8MoMlZ?p=preview
Вы можете запускать проверки, если какой-либо из элементов в модели true
используя $scope.$watch
Функция $scope.$watch
:
$scope.$watch('tableSelection', function(val){
if(val){ //if value is not empty
$scope.disableRemoveButton = true;
for (var i in val){ //iterate props of the Object
if(val.hasOwnProperty(i)){ //only needed props
if(val[i] == true) {
$scope.disableRemoveButton = false;
}
}
}
}
}, true)
Мы также вводим дополнительный флаг $scope.disableRemoveButton
, который изменяется в случае, если в модели есть истинное значение. Это соответствует <button class="btn btn-danger" ng-disabled="disableRemoveButton"
в шаблоне.