[AngularJs问题] $digest $apply

来源:互联网 发布:粮食行业数据体系现状 编辑:程序博客网 时间:2024/05/29 21:31

初学Angular,遇到了很多问题,以后会将关于Angular的问题解决与体会一一纪录。因为是初学,所以主题会比较简单~

在用moment.js写倒计时组件时,遇到一个问题:html中绑定的变量按理说应该每秒变化一次,是在controller里控制的,断点调试时发现变量是变化的,但是html不变。代码如下:

function countDown (pause_time) {    $scope.interval = setInterval(function () {        var diff = pause_time - moment().unix();        var duration = moment.duration(diff, 'seconds');        if (diff !== 0) {            $scope.duration = '0' + duration.hours() + ':' + moment(duration.asMilliseconds()).format('mm[:] ss');        } else {            $scope.duration = '';            $scope.status = '运行中';            clearInterval($scope.interval);        }    }, 1000);}

后来发现是因为在seInterval方法中变量变化但是没有执行$digest loop。所以在每秒变量变化之后执行$scope.$digest();就可以了。
链接文章:http://www.tuicool.com/articles/MFjeQry

0 0
原创粉丝点击