AngularJS监视对象数组以进行数据更改

我正在实现一个购物车,并希望将数据存储在localStorage中。我想观察变量$scope.cart的变化,以便可以更新localStorage

cart变量看起来像这样:

[{'name':'foo', 'id':'bar', 'amount': 1 },...]

这是手表的代码。

$scope.updateCart = function(){

localStorageService.add('cart',JSON.stringify($scope.cart));

alert('cart updated');

};

$scope.$watch($scope.cart, $scope.updateCart(), true);

这是用户更改模型的HTML。

<li ng-repeat="item in cart">

{{item.name}} <input type="text" ng-model="item.amount">

</li>

使用以下代码,updateCart()永远不会触发该方法。我不确定自己在做什么错。我检查$scope.cart变量是否更改,但未触发更新。

回答:

$watch仅在其第一个参数中计算字符串或函数参数。$watch像这样改变你:

$scope.$watch('cart.name + cart.id + cart.amount', $scope.updateCart());

要么

$scope.$watch('cart', $scope.updateCart, true);

请参阅参考API

以上是 AngularJS监视对象数组以进行数据更改 的全部内容, 来源链接: utcz.com/qa/405113.html

回到顶部