Wprowadzam koszyk i chcę przechowywać dane w localStorage. chcę oglądać zmiennej $scope.cart
na zmianę tak, że mogę zaktualizować localStorageTablica obserwacyjna AngularJS obiektów do zmiany danych
Zmienna koszyk wygląda tak:
[{'name':'foo', 'id':'bar', 'amount': 1 },...]
Jest to kod na zegarek.
$scope.updateCart = function(){
localStorageService.add('cart',JSON.stringify($scope.cart));
alert('cart updated');
};
$scope.$watch($scope.cart, $scope.updateCart(), true);
To jest kod HTML, w którym użytkownik zmienia model.
<li ng-repeat="item in cart">
{{item.name}} <input type="text" ng-model="item.amount">
</li>
Przy pomocy następującego kodu metoda updateCart()
nigdy nie zostanie wyzwolona. Nie jestem pewien, co robię źle. Sprawdzam, czy zmienna $scope.cart
uległa zmianie, ale aktualizacja nie została uruchomiona.
Czy w pierwszym przykładzie nie jest "niepotrzebne"? –
$ scope.updateCart nigdy się nie wyzwoli, jeśli przekażesz je z nawiasami, tak jakbyś przekazał wynik tej funkcji do $ watch, która w tym przypadku byłaby niezdefiniowana. Prawidłowy sposób to: $ scope. $ Watch ('cart', $ scope.updateCart, true); – SKuijers
'koszyk' to tablica obiektów, nie ma właściwości takich jak' kwota' – Hovo