我需要获取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指出这一点。