Css 在AngularJS中不使用JQuery获取HTML元素高度

Css 在AngularJS中不使用JQuery获取HTML元素高度,css,angularjs,Css,Angularjs,我越来越熟悉AngularJS了。我正在尽可能地“纯洁”。出于这个原因,我试图避免包含jQuery。然而,获取HTML元素的高度是一个挑战。目前,我正在尝试以下方法: angular.module('myModule', []) .directive('myDirective', function() { return { restrict: 'A', link: function(scope, element) { conso

我越来越熟悉AngularJS了。我正在尽可能地“纯洁”。出于这个原因,我试图避免包含jQuery。然而,获取HTML元素的高度是一个挑战。目前,我正在尝试以下方法:

angular.module('myModule', [])
  .directive('myDirective', function() {
    return {
        restrict: 'A',
        link: function(scope, element) {
            console.log(element.css('height'));
        }
    };
  })
;
但是,当执行此代码时,会向控制台写入一个空行。我试图显示元素的高度。在AngularJS中有没有一种不用jQuery的方法可以做到这一点


谢谢大家!

如果您使用以下选项,则该选项似乎工作正常,并给出相同的结果:

element.style.height
由于没有在元素上设置内联样式或CSS高度,因此显示一个空行。您可以直接获得HTML元素的高度,而不是依赖样式

console.log(element[0].offsetHeight);


angular提供的小包装元素允许您请求属性,因此:

element.prop('offsetHeight');

很好,请看:

这对我来说很有效!我试图从我的应用程序中删除jQuery,它使用的是
angular.element('#header').height()
。您可以对
angular.element(document.querySelector(“#header”)[0]执行相同的操作。谢谢您可能关心也可能不关心这一点,但就性能而言,getElementById
比ID的querySelector更好。我无法复制它来显示。我遇到的问题是,使用ng repeat渲染的元素是相同的,但静态元素具有不同的高度。原因可能是不同的加载时间吗?我的意思是,一个需要从Javascript获取内容来设置DOM,而另一个则可以清楚地看到它。如果是这样的话,有什么解决办法吗?谢谢兄弟,你救了我一天:)