当警报弹出窗口可见时,如何让Angular增加计数器?

时间:2015-10-29 09:59:27

标签: angularjs

在这个小提琴(http://jsfiddle.net/edwardtanguay/6pn8tb83/1)中,Angular每秒递增一个数字,但是当一个警告窗口弹出时,计数停止,当我关闭警报窗口时,我收到错误

  

错误:[$ rootScope:inprog] $申请已在进行中   http://errors.angularjs.org/1.2.1/ $ rootScope / inprog?P0 =%24apply

此错误链接实际上将我带到了一个似乎在解释我需要做什么的页面,但由于我没有明确使用$scope.$apply()$scope.$digest(),因此我没有'理解我需要做什么,以便在弹出警报窗口时,Angular会继续递增并显示递增的数字。

<div ng-controller="MyCtrl">
    <div>Angular is counting: {{counter}}</div>
    <button ng-click="processFiles()">processFiles</button>
    <div>{{message}}</div>
</div>  
var myApp = angular.module('myApp',[]);

function MyCtrl($scope, $interval) {

    var theTimer = $interval(function () {
        $scope.counter++;
    }, 1000);           

    $scope.counter = 0;
    $scope.message = 'click button';

    $scope.processFiles = function() {
        alert('ok');
    }
}

1 个答案:

答案 0 :(得分:0)

这是默认行为。打开浏览器对话框时脚本执行停止。 解决方法是获取警报和更新计数器之间的时间差异,另一个是创建自己的模态