$ watch on angular.element(document).height()报告的值不正确

时间:2015-05-21 16:09:19

标签: angularjs angularjs-directive

我有一个基于文档高度执行计算的指令,每次更改文档高度时我都要重新计算。

为了重新计算文档高度更改,我将$watch设置为文档

        scope.$watch(function() {
            return angular.element(document).height();
        }, function(newVal, oldVal) {
            scope.height = newVal;
            console.log('height: ', newVal);
        });

最初,angular.element(document).height()报告664px(更高)的高度。在其中一个div上展开(通过单击),高度报告为298px(更低),现在通过展开/折叠来播放它,您将看到值始终更改为上一个。 如果我打开控制台并scope.$apply(),则值已正确更新,但它不是解决方案,您无法在scope.$apply()内运行$watch,您将获得无限的摘要循环。

以下是问题演示: http://jsfiddle.net/vladimir_ze/pmxsvu9g/2/

可以做什么,所以我总是得到当前的文件高度?

0 个答案:

没有答案