Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get HTML Element Height without JQuery in AngularJS

Tags:

css

angularjs

I'm getting familiar with AngularJS. I'm trying to be as 'pure' as I can. For that reason, I'm trying to avoid including jQuery. However, I'm having a challenge getting an HTML element's height. Currently, I'm trying the following:

angular.module('myModule', [])
  .directive('myDirective', function() {
    return {
        restrict: 'A',
        link: function(scope, element) {
            console.log(element.css('height'));
        }
    };
  })
;

However, when this code gets executed, an empty line gets written to the console. I'm trying to display the height of the element. Is there a way to do this in AngularJS without using jQuery?

Thank you!

like image 992
user3284007 Avatar asked Feb 20 '14 00:02

user3284007


2 Answers

It appears this is working correctly and gives the same result if you use:

element.style.height

Since no inline style or CSS height is set on the element a blank line is shown. Instead of relying on the style you can get the HTML elements height directly.

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

http://plnkr.co/edit/03YWwjBjYpid4fVmDxlM?p=preview

How do I retrieve an HTML element's actual width and height?

like image 185
shaunhusain Avatar answered Nov 15 '22 04:11

shaunhusain


The small wrapper around element provided by angular allows you to ask for properties, so:

element.prop('offsetHeight');

Will just work fine, see: http://plnkr.co/edit/pFHySDo7hjEcMKCqGuiV?p=preview

like image 27
IxDay Avatar answered Nov 15 '22 05:11

IxDay