使用Angular获取div的clientHeight?

时间:2015-07-17 00:49:12

标签: javascript html css angularjs

我需要获得div的clientHeight?我如何在Angular中执行此操作? (我现在不在乎这是不好的做法)

我尝试过一千件事,其中一些可以在plunker中看到。下面的代码在控制器之外工作,但不适用于clientHeight:

    $scope.myElem = angular.element(document.getElementById('testDiv')); 
    $scope.myAttr = $scope.myElem.attr('name'); 

我不知道如何从指令中获取属性。所有示例似乎只使用带有命名属性的链接。我不会设置clientHeight,我只需要返回它。

1 个答案:

答案 0 :(得分:6)

使用指令是最简单的方法。 DOM在link(后链接)函数中完全实现,因此元素属性应该可用。

例如

.directive('logClientHeight', function($log) {
    return {
        link: function(scope, element) {
            $log.debug(element.prop('clientHeight'));
        }
    }
});

Plunker

请注意,对于具有典型element properties的元素,它应该是典型元素。

感谢Eric Martinez指出这一点。