我有一个基于文档高度执行计算的指令,每次更改文档高度时我都要重新计算。
为了重新计算文档高度更改,我将$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/
可以做什么,所以我总是得到当前的文件高度?