【问题标题】:Find the biggest height of a div in ng-repeat在 ng-repeat 中查找 div 的最大高度
【发布时间】:2015-10-10 23:06:02
【问题描述】:

我有一组数据,它是一个对象数组。一些对象的数据比其他对象多。但是每个对象都会显示在每个 col-md-4 div 中。因此,每个 div 的高度会根据对象的数据量而有所不同。

这是我的代码:

<div class="col-md-12 eventlog-info-container">
  <div class="row eventlogs-single-container">
    <div class="col-md-4 eventlog-1-container" ng-repeat="record in records track by $index">
        <h4>Event Log {{$index}}</h4>
        <ul>
            <li ng-repeat="(key, value) in record">{{::key}}: {{::value}}</li>
        </ul>
    </div>
  </div>
</div>

我的问题是在 ng-repeat 之后,我想找到元素的最大高度。然后使用 ng-style 将最大高度应用于每个元素。

我有一个想法来使用 JQuery 来解决这个问题。但是,我想使用 Angular 来做到这一点?有什么建议吗? Anuglar 不适合 DOM 操作?

谢谢你。

【问题讨论】:

  • 是的,Angular 不是为 DOM 操作而生的,所以你应该使用 jQuery。但是,如果您想以角度方式执行此操作,则应将代码包装在指令中。
  • 我明白了。 @Rkayat 给了我一个很好的起点。但是,我需要以某种方式返回所有高度,然后对其进行操作。

标签: css angularjs dom


【解决方案1】:

在我昨天做了一些研究之后。我找到了一个开源 angular 指令来解决我的问题 - angularJS Vertilize Directive 一个 AngularJS 指令,用于垂直均衡一组具有不同高度的元素。换句话说,它动态地使一组元素具有相同的高度。感谢 Chris Collins 制定了此指令。

<div vertilize-container class="row">
  <div ng-repeat="col in columns" class="col-sm-3">
    <div class="well">
      <div vertilize>
       <h3>{{ col.title }}</h3>
       <p>{{ col.body }}</p>
      </div>
    </div>
  </div>
</div>

【讨论】:

  • 我找到的最佳解决方案。我将它用于组件上的 ng-repeat,它运行良好。
【解决方案2】:

This 的回答应该能让你走上正确的道路。

<div class="col-md-12 eventlog-info-container">
  <div class="row eventlogs-single-container">
    <div class="col-md-4 eventlog-1-container" ng-repeat="record in records track by $index">
        <h4>Event Log {{$index}}</h4>
        <ul>
            <li outer-height ng-repeat="(key, value) in record">{{::key}}: {{::value}}</li>
        </ul>
    </div>
  </div>
</div>


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

    }
  };
});

【讨论】:

  • 这就是我要说的。谢谢你的快速反应,兄弟。
  • 先谢谢先进了,我试试再告诉你。
  • 您的回答只告诉我如何获得一个特定高度的值。但我需要得到最大的并再次应用高度。任何想法?这是一个很好的开始方向。
  • @Rkayat 看看我的回答。
猜你喜欢
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
相关资源
最近更新 更多