免责声明:我是AngularJS的初学者。
我正在尝试在承诺返回后更新$ 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
我看到很多关于这个错误的帖子,但没有任何我可以直接链接到我的问题。
谢谢!
答案 0 :(得分:2)
试试这个:
.then(function(data){
$scope.points = CardModel.points;
})
答案 1 :(得分:0)
你不需要使用$ apply()。
记录您的功能参数('数据')并查看它包含的内容。
它应该包含promise返回的值。
为您的范围变量指定适当的值。