Angularjs应用范围更改以立即查看

时间:2014-04-07 11:52:31

标签: angularjs

如何在退出点击方法之前使角度应用更改到视图?在以下示例中,我希望在显示确认框时可以看到范围。

$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>

Plunker

1 个答案:

答案 0 :(得分:7)

你想要做的是在Angular的一个摘要周期中执行部分代码,而在另一个摘要周期中执行其余部分。我通过使用一个小超时完成此任务:

$scope.click = function () {
    $scope.saving = true;

    $timeout(function() {
        confirm('Are you sure?');
        $scope.saving = false;
    }, 50);
}

注意:不要忘记将$timeout添加到控制器的依赖项