Ich habe eine Matrix mit dem folgenden Code erstellt:ng-Klick fügt eine Klasse auf alle Elemente anstelle von nur einem
<div class="cell-container" ng-repeat="cell in field">
<div ng-repeat="cols in cell track by $index" class="cell" ng-click="selectShip(cols)" ng-class="{ selected: !cols.empty }">
{{ $parent.$index }} {{ $index }}
</div>
</div>
Innerhalb der Richtlinie I eine Funktion haben, dass, wenn darauf geklickt sollte den Objektwert ändern und hinzufügen eine Klasse für das Klickelement
scope: {
field: '=',
type: '@'
},
link: function($scope) {
$scope.selectShip = function(item) {
if (item.empty === true) {
item.empty = false;
} else {
item.empty = true;
}
}
}
Das Problem ist, dass, wenn ich in der inneren ng-Wiederholung auf einem div klicken, wird der Objektwert ändert und fügt eine Klasse auf allen divs, nicht nur angeklickten ein.
Was mache ich falsch?
Wo verwenden Sie Ihre Direktive in der HTML oder Ihrer Seite? –
Ich verstehe die Frage nicht –
Diese Vorlage, die Sie in Frage gezeigt haben, ist es der Richtlinie Vorlage oder Vorlage Ihrer Seite (Teilansicht oder Route)? – Shantanu