如何在退出点击方法之前使角度应用更改到视图?在以下示例中,我希望在显示确认框时可以看到范围。
$scope.click = function () {
$scope.saving = true; //Not enough
$scope.$apply(function () {
$scope.saving = true;
});//Throws error but works [$rootScope:inprog] $apply already in progress
confirm('Are you sure?');
$scope.saving = false;
}
<span ng-show="saving">Loading ... </span>
答案 0 :(得分:7)
你想要做的是在Angular的一个摘要周期中执行部分代码,而在另一个摘要周期中执行其余部分。我通过使用一个小超时完成此任务:
$scope.click = function () {
$scope.saving = true;
$timeout(function() {
confirm('Are you sure?');
$scope.saving = false;
}, 50);
}
注意:不要忘记将$timeout
添加到控制器的依赖项