Ich versuche, ein Kontrollkästchen für alle auswählen, die beim Klicken alle anderen Kontrollkästchen auf der Seite aktivieren/deaktivieren.Eigenschaft von undefined in AngualrJs kann nicht gesetzt werden
Mein HTML ist wie folgt:
<table class="table table-striped">
<thead>
<tr class="table-header">
<th ng-if="!newTestSessionCtrl.formData.battery.id"><input type="checkbox" ng-click="newTestSessionCtrl.selectAllTests()" ng-model=".allSelected" /></th>
<th>Test</th>
<th>Available Time</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in newTestSessionCtrl.formData.battery.testDefinitions">
<td ng-if="!newTestSessionCtrl.formData.battery.id"><input type="checkbox" ng-model="row.selected" ng-change="newTestSessionCtrl.optionToggled(); newTestSessionCtrl.validate()" /></td>
<td>{{row.name}}</td>
<td>{{(row.duration/60) | number:0}} minutes</td>
</tr>
</tbody>
</table>
Und das ist Code von meinem Controller:
class NewTestSessionController {
constructor($scope, $state, resources, NewTestSessionService, formats, AuthenticationService, toastr, momentTimezone, _) {
this.allSelected = false;
}
selectAllTests() {
let isSelected = true;
if (this.allSelected) {
isSelected = false;
}
angular.forEach(this.formData.battery.testDefinitions, function(v) {
v.checked = !isSelected;
this.allSelected = !isSelected;
});
}
optionToggled() {
this.allSelected = true;
angular.forEach(this.formData.battery.testDefinitions, function(v) {
if(!v.checked) {
this.allSelected = false;
}
});
}
}
Das Problem ist mit allSelected Variable, wenn ich wählen Sie alle Kontrollkästchen klicken ich Fehler zu wobei undefined:
Versuche ich, falsch darauf zuzugreifen? Wenn ich den Debugger verwende, ist diese Variable nicht undefiniert, also bin ich mir nicht sicher, ob ich überhaupt an der richtigen Stelle bin? Dieses Problem sollte einfach zu implementieren sein, aber ich bin bei Angular noch nicht so gut. Sieht jemand das Problem?
Jetzt habe ich keine Fehler, aber ich denke, mein ursprünglicher Code nicht gut war. Da keine der Kontrollkästchen aktiviert sind. ng-click löst die Funktion aus, aber nichts passiert. :(@PankajParkar –