在AngularJS中设置子div的高度

时间:2016-10-20 07:46:52

标签: javascript html css angularjs

我是angularJS的新手并试图从父div中找到子div的高度。我想在没有jquery的情况下这样做。我从这里尝试了很多解决方案,但没有为我工作。

我还有一个疑问,在jquery中我们可以使用$(" .class")。height()和$(" .class")。css(" value"),像这样angularJS提供了将属性设置为父子div的任何选项。

这里我使用指令概念来设置这些东西,

代码

myApp.directive('orientable', function () {       
return {
    restrict: 'A',
    link: function(scope, element, attrs, controller) {

          //this both will work fine
           alert(element.children()[0].offsetHeight);
           alert(element.children()[1].offsetHeight);

           debugger;

           element.children()[0].height();
          //Uncaught TypeError: element.children(...)[0].height is not a function(…) 

           //this bellow code is showing the error
           element.children()[0].css('height','250px');
       //Uncaught TypeError: element.children(...)[0].css is not a function(…) 


    }
}
});

 <div orientable class=main ng-app="myApp">
    <div class=ele1> </div>
     <div class=ele2> </div>
      <div class=ele3> </div>
</div>

Fiddile

3 个答案:

答案 0 :(得分:1)

使用element.children()[0].height();您正在使用jquery,因为enter image description here是典型的jquery函数。

将其替换为element.children()[0].clientHeight,你应该好好去。请记住,javascript提供了各种函数来获取元素高度:

clientHeight包括元素的高度和垂直填充。

offsetHeight包括元素的高度,垂直边距和垂直边框。

答案 1 :(得分:1)

访问像element.children()[0]这样的元素时,您可以访问原始DOM元素,该元素不具有来自jquery的css / height方法。

您可以这样设置身高element.children()[0].style.height = "200px"

答案 2 :(得分:1)

我不是Angular家伙,但试试这个

var myApp = angular.module('myApp', []);

myApp.directive('orientable', function () {       
    return {
        restrict: 'A',
        link: function(scope, element, attrs, controller) {

               alert(element.children()[0].offsetHeight);
               alert(element.children()[1].offsetHeight);

               element.children()[0].clientHeight;
               element.children()[0].style.height="250px";


        }
    }
});

css()height()是来自jQuery的东西。

对于height(),您可以使用clientHeight - 它将包含和填充,对于css,您可以使用style.height。