我正在动态创建一些表,它们都有许多行,这些行也是使用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"
似乎是我的问题-我不知道找到元素自己的子元素的正确方法,并检查它有多少可见。
在angular中有没有可能做到这一点?
在控制器中创建一个函数,例如
$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)"
中使用