如果所有子项都隐藏在Angular中,则隐藏容器

时间:2016-10-20 21:53:30

标签: javascript html angularjs dynamic html-table

我正在动态创建许多表,这些表都有许多行,这些行也是使用Angular动态创建的。

如果该表中没有可见的行,我的目标是隐藏每个表。

<table ng-repeat="package in listOfPackages" ng-if="this.getElementsByTagName('tbody')[0].childNodes.length > 0 ">
  <tbody>
    <tr ng-repeat="thing in package.things" ng-if="thing.status === 'interesting'">
      <td>{{thing.someInfo}}</td>
      <td>{{thing.someOtherInfo}}</td>
    </tr>
  </tbody>
</table>

ng-if="this.getElementsByTagName('tbody')[0].childNodes.length > 0"似乎是我的问题 - 我不知道找到元素自己的孩子的正确方法,并检查它有多少可见。

有没有办法以角度来做这件事?

1 个答案:

答案 0 :(得分:0)

在控制器中创建一个类似

的函数
$scope.showPackageTable = function (package) {
    var toShow = false;
    for (var thing in package.things) {
        if (thing.status === 'interesting') { toShow = true; }
    }
    return toShow;
}

然后你可以在你的html ng-if="showPackageTable(package)"

中使用它