使用ng-repeat检测元素的outerHeight()

时间:2014-02-19 16:53:21

标签: javascript jquery html angularjs dom-manipulation

我正在尝试检测元素的高度,该元素将根据数据库中的数据而发生变化。

我以前成功使用过.outerHeight但是不能对包含ng-repeat数据的元素执行此操作。

一旦数据填充了角度元素,还是有其他方法可以检测到这个吗?

1 个答案:

答案 0 :(得分:2)

是的,您需要创建一个属性指令并将其放在ng-repeat上。

<div ng-repeat="whatever in items" outer-height></div>

该指令将具有链接函数,该函数在编译后发生。

app.directive('outerHeight', function(){
  return{
    restrict:'A',
    link: function(scope, element){
       //using outerHeight() assumes you have jQuery
       //use Asok's method in comments if not using jQuery
       console.log(element.outerHeight()); 
    }
  };
});

这是一个Plnkr,它会将outerHeight记录到控制台:http://plnkr.co/edit/AdGpnzJilW2179Ybuurk?p=preview

注意如果数据发生变化,您需要使用$watch并获得新的高度。