Ich bin ein Einkaufswagen implementieren und möchte die Daten in localStorage speichern. Ich möchte die Variable $scope.cart
für den Wandel beobachten, so dass ich die localstorage aktualisierenAngularJS beobachten Array von Objekten für die Datenänderung
Die Karre Variable wie folgt aussieht:
[{'name':'foo', 'id':'bar', 'amount': 1 },...]
Dies ist der Code für die Uhr ist.
$scope.updateCart = function(){
localStorageService.add('cart',JSON.stringify($scope.cart));
alert('cart updated');
};
$scope.$watch($scope.cart, $scope.updateCart(), true);
Dies ist der HTML-Code, in dem der Benutzer das Modell ändert.
<li ng-repeat="item in cart">
{{item.name}} <input type="text" ng-model="item.amount">
</li>
Mit dem folgenden Code, die updateCart()
Methode wird nie ausgelöst. Ich bin mir nicht sicher, was ich falsch mache. Ich überprüfe, dass sich die $scope.cart
Variable geändert hat, aber das Update wurde nicht ausgelöst.
Ist '' '' im ersten Beispiel nicht unnötig? –
$ scope.updateCart wird niemals ausgelöst, wenn Sie es in Klammern übergeben, da Sie das Ergebnis der Funktion an die $ watch übergeben würden, die in diesem Fall nicht definiert wäre. Der richtige Weg ist: $ scope. $ Watch ('cart', $ scope.updateCart, true); – SKuijers
'cart' ist ein Array von Objekten, es hat keine Eigenschaften wie' Menge' – Hovo