如何基于“| filter”显示/隐藏UI组件会导致AngularJS?

时间:2015-11-02 21:51:27

标签: javascript angularjs ng-repeat angular-filters ng-show

我有一个嵌套的表结构,其中一个表根据Javascript对象“metasetHashSplit”的ng-repeat进行填充,并且该表依次有一个表,该表根据被称为“ids”的属性进行填充。我有一个要求,如果内部表中的所有元素都被过滤掉,我需要隐藏主要的ng-repeat。我正在使用“管道”/“|”过滤内部表格。 如果过滤掉内部表中的所有记录,我无法处理何时或如何触发ng-show / hide。

这是设置代码的方式:

<tbody  ng-repeat="(metaset, ids) in metasetHashSplit">
<tr class = "meta">
    <td   rowspan = 100 >{{metaset}}</td>
</tr>
<tr class = "meta" style="margin:0;padding:0;"  ng-repeat="item in ids" >
    <td class = "innerTable">
        <table class="table  child table-hover table-bordered table-condensed " >
            <tr ng-repeat="buy in item.Buy  | filter:{ MBC: by_buyMBC }" >
                <td >{{buy.BuyId}}</td>
                <td >{{buy.BuyRelease}}</span></td>
                <td >{{buy.BuyComponentAffected}}</td>
                <td >{{buy.BuyStatus}}</span></td>
            </tr>
        </table>
    </td>
</tr>

如果他们发现自己处于这样的位置,有人可以帮助我吗?基本上tbody需要显示/隐藏| filter:{MBC:by_buyMBC}结果!

1 个答案:

答案 0 :(得分:2)

基于this question使用:

<div ng-repeat="buy in filtered = (item.Buy | filter:{ MBC: by_buyMBC })">
</div>

所以你要做的只是在正确的元素上使用ng-if="filtered.length > 0"来显示和隐藏