我有一个控制器,它负责将产品项目添加到购物车。一切都很好,请求发送,获取响应数据,但我无法更新HTML中的数据(请参阅图像)。
我试图把它与$scope.$apply(); $scope.$watch
写,但我从rootScope and $digest
Angular JS无法更新数据
Error: [$rootScope:inprog] http://errors.angularjs.org/1.4.8/ $rootScope/inprog?p0=%24digest
越来越如果我不使用$应用,数据没有更新。
这里是我的代码。
<a href="">Pr: {{cart.count}} <br/> Summ. {{ cart.summ | number:2 }}</a>
shopApp.factory('shop', ['$http', function($http) {
return $http.get('/ajax/get_shop.ajax')
.success(function(data) {
return data;
})
.error(function(err) {
return err;
});
}]);
shopApp.controller('ShopController', ['$scope','$http','$timeout','shop', function($scope,$http,$timeout,shop) {
$scope.cart = null;
shop.success(function(data) {
$scope.cart = data;
});
$scope.addToCart = function() {
var pr_price = parseInt(angular.element("#pr_price").val(),10);
var pr_id = angular.element("#pr_id").val();
if(pr_price!= ""){
return $http({
method : 'POST',
url : '/ajax/add_to_cart.ajax',
data : 'pr_price=' + json_obj + '&pr_id='+pr_id ,
headers : {
'Content-Type' : 'application/x-www-form-urlencoded'
}
})
.success(function (shopping_data,status) {
if (status == 200){
$scope.cart = shopping_data;
console.log(shopping_data);//everything is ok
}
}).error(function(err) {
return err;
});
}
};
}]);
可以提供样品[plunkr(http://plnkr.co/edit/?p=preview)? – Grundy