3

我正在创建一个不使用 JQuery 的 AngularJS 站点。在指令中,传递的值是

EngagementApp.directive('movingAside', function() {
    return {
        restrict : 'A',
        link : function(scope, element, attributes) {

      }
    }
});

和 html 看起来像:

<div class="aside" moving-aside>...Content...</div>

执行 element.clientHeight 之类的操作会返回未定义。

如何在不使用 JQuery 而仅使用 AngularJS 函数的情况下获取元素的属性(高度、宽度、偏移量等)?

4

2 回答 2

14

利用element[0].clientHeight | offsetHeight | scrollHeight

element[0]使您可以访问 JQLite 选择器集合中的第一个 DOM 元素,而clientHeight它是 DOM 元素的内置属性。

EngagementApp.directive('movingAside', function() {
    return {
        restrict : 'A',
        link : function(scope, element, attributes) {
            console.log(element[0].clientHeight);
      }
    }
});

根据您的追求,您可以获得 3 种不同的高度:

于 2014-01-31T22:50:57.240 回答
0

尝试angular.element(element).css('height')

于 2013-09-17T14:39:21.810 回答