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