我需要获取div的clientHeight吗?如何在Angular中做到这一点? (我不在乎这是否是不好的做法)

我已经尝试了上千种方法,其中一些可以在plunker中看到。以下代码在控制器外部运行,但不适用于clientHeight:

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


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

最佳答案

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

例如

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


Plunker



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

感谢Eric Martinez指出这一点。

10-07 22:41