我正在实现一个购物车,并希望将数据存储在localStorage。
我想看变量$ scope.cart的更改,以便我可以更新localStorage
我想看变量$ scope.cart的更改,以便我可以更新localStorage
购物车变量如下所示:
[{'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仅在其第一个参数中计算字符串或函数参数。更改您的$手表这样:
$scope.$watch('cart.name + cart.id + cart.amount',$scope.updateCart());
要么
$scope.$watch('cart',$scope.updateCart,true);