Ich habe ein Problem bindenden Angular ng-check zu ng-Modell, das ist ng-Modell erkennt nicht den ausgewählten Zustand meiner Kontrollkästchen.Wie man ng-model an ng-checked Boxen bindet
Hier ist eine Beschreibung (Es ist eine viel größere Code-Basis, aber ich habe zugeschnitten, um Code zu minimieren).
Auf Seite Last in JavaScript initialisieren ich meine Produkte und legen Sie die Standardwerte:
$scope.products = {}
$scope.SetProductsData = function() {
var allProducts;
allProducts = [
{
id: 1,
name: "Book",
selected: true
}, {
id: 2,
name: "Toy",
selected: true
}, {
id: 3,
name: "Phone",
selected: true
}]
ich eine Master-Steuerung in meiner Ansicht, die ein Kontrollkästchen für je 3 Produkte (Buch, Spielzeug und Telefon) Liste : Diese sind standardmäßig aktiviert
<div style="float:left" ng-init="allProducts.products = {}" >
<div ng-repeat="p in Data.products">
<div style="font-size: smaller">
<label><input id="divPlatorm" ng-model="products[p.name]" ng-init="products[p.name] = true" type="checkbox"/>
{{p.name}}</label>
</div>
</div>
</div>
Dann wird eine Tabelle, die die gleichen Produkte in Reihen wiederholt haben:
<div ng-repeat="line in lineProducts" ng-init="line.products = {}">
<div id="sc-p-enc" ng-repeat="p in Data.products">
<div id="sc-p-plat" style="font-size: smaller">
<label id="pl-label"><input ng-checked="products[p.name]" ng-model="line.products[p.name]" ng-init="line.products[p.name] = true" type="checkbox"/>
{{p.name}}</label>
</div>
</div>
</div>
Wenn ich die Master-Produkte an-/abgebe, ändert sich das entsprechende Kontrollkästchen in den Zeilen. Also, wenn ich 100 Reihen mit (Buch, Spielzeug und Telefon) habe, kann ich das unkontrollierte Spielzeug sehen, wo alle Spielzeuge in den Reihen ungeprüft sind.
Wenn ich die Daten an meine Steuerung sende, kann ich immer noch alle Toys = true sehen, obwohl sie nicht markiert waren.
Wenn ich physisch in die Reihe gehe, dann deaktiviert jedes Spielzeug und die Daten an meine Steuerung Toys = False.
Wie kann ich den markierten Status des Kontrollkästchens ändern, wenn er über die Master-Kontrollkästchen gesteuert wird?
Ich habe das gefunden Post gefolgt hier, aber ich glaube nicht, dass dies mein Szenario gilt: AngularJS: ng-model not binding to ng-checked for checkboxes
Es fehlen Teile des Codes. Eine Geige/Plunk würde helfen. Abgesehen davon: Sie verwenden IDs innerhalb von 'ng-repeat' erneut; Es wird zu vielen Elementen mit der gleichen ID im Dokument führen. Und Sie verwenden 'ng-init' ausgiebig. Ich glaube, dass "ng-init" die Verfahrenslogik in die Ansicht einfügt, was im Allgemeinen keine Best Practice ist. –