Ich habe eine Liste von Kontrollkästchen. Immer wenn ich auf ein Kontrollkästchen klicke, möchte ich eine Funktion aufrufen, je nachdem, ob sie aktiviert oder deaktiviert ist. Dies wird erreicht mit ng-change
Warum funktioniert `ng-checked` nicht mit` ng-change`?
Gleichzeitig habe ich auch ng-checked
, die mir hilft, ein Kontrollkästchen mit einem Knopf zu deaktivieren.
Im Anschluss an die Umsetzung:
<md-checkbox md-no-ink="true" ng-checked="selected.indexOf(brand) > -1" ng-change="value?add(brand):remove(brand)" ng-model="value" ng-repeat="brand in brands">
{{brand}}
</md-checkbox>
<md-button ng-click="fun('Spice')">Uncheck</md-button>
Der Controller-Code wird wie folgt dar:
$scope.brands = ['Apple','Samsung','Motorolla','Nokia','Micromax','Spice'];
$scope.value = false;
$scope.selected = [];
$scope.fun = function(x){
console.log("Unchecking "+x);
}
$scope.add = function(x){
$scope.selected.push(x);
}
$scope.remove = function(x){
var index = $scope.selected.indexOf(x);
$scope.selected.splice(index,1);
}
Es gibt eine ähnliche Frage auf Stackovrflow ist, aber es hatte Frage in Bezug auf ng-Modell auf das Kontrollkästchen fehlt . Ich habe ng-model
hier aufgenommen.
Warum funktioniert das nicht? Habe ich etwas falsch gemacht?
Die ng-checked-Direktive sollte NICHT mit dem ng-Modell verwendet werden - [siehe die Dokumentation] (https://docs.angularjs.org/api/ng/directive/ngChecked). – Anton
oh .. Ich realisierte das Problem. Es gibt einen Konflikt zwischen ng-Modell und ng-checked –