AngularJS:如何在承诺响应后更新 $scope?
AngularJS: How to update $scope after a promise response?
免责声明:我是 AngularJS 的初学者。
我试图在 promise 返回后更新 $scope,但它不起作用。这是简化的代码:
.controller('ChooseRewardCtrl', ['$scope', ...,
function($scope, ...) {
// scope data
$scope.points = CardModel.points;
// function called to refresh points
$scope.refresh_points = function() {
return CardModel.refresh_points() // This is a promise that changes CardModel.points value
.then(function(data){
$scope.$apply() // Throw error (cf. above)
})
}
}
我得到一个Error: [$rootScope:inprog] $digest already in progress
我看到很多关于此错误的 post,但没有什么可以直接 link 解决我的问题。
谢谢!
试试这个:
.then(function(data){
$scope.points = CardModel.points;
})
您不需要使用 $apply()。
记录您的函数参数 ('data') 并查看它包含什么。
它应该包含 promise 返回的值。
为范围变量分配适当的值。
免责声明:我是 AngularJS 的初学者。
我试图在 promise 返回后更新 $scope,但它不起作用。这是简化的代码:
.controller('ChooseRewardCtrl', ['$scope', ...,
function($scope, ...) {
// scope data
$scope.points = CardModel.points;
// function called to refresh points
$scope.refresh_points = function() {
return CardModel.refresh_points() // This is a promise that changes CardModel.points value
.then(function(data){
$scope.$apply() // Throw error (cf. above)
})
}
}
我得到一个Error: [$rootScope:inprog] $digest already in progress
我看到很多关于此错误的 post,但没有什么可以直接 link 解决我的问题。
谢谢!
试试这个:
.then(function(data){
$scope.points = CardModel.points;
})
您不需要使用 $apply()。
记录您的函数参数 ('data') 并查看它包含什么。
它应该包含 promise 返回的值。
为范围变量分配适当的值。