我有一個控制器,它負責將產品項目添加到購物車。一切都很好,請求發送,獲取響應數據,但我無法更新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