2015-11-02 7 views
1

У меня есть структура вложенных таблиц, в которой таблица заполняется на основе ng-повторения объекта Javascript «metasetHashSplit», и эта таблица, в свою очередь, имеет таблицу, которая заполняется на основе свойства в названии «идентификаторы». У меня есть требование, когда мне нужно скрыть основной ng-repeat, если все элементы во внутренней таблице отфильтрованы. Я использую "pipe"/"|" фильтр для внутренних таблиц. Я не могу разобраться, когда и как вызвать ng-show/hide, если все записи во внутренней таблице отфильтрованы.Как показать/скрыть компонент пользовательского интерфейса на основе результатов «| фильтра» в AngularJS?

Это как код установки:

<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> 

Может кто-нибудь мне помочь, если они оказались в таком положении, как это? В основном телу нужно отображать/скрывать в отношении результатов фильтра: {MBC: by_buyMBC}!

ответ

2

на основе this question использования:

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

Так что все вы могли бы сделать, чтобы показать и скрыть основу от это использовать ng-if="filtered.length > 0" на праве элемента

+1

Это удивительно. Как я пропустил это! Спасибо, попробуй это и посмотри. – lostalien

+1

Я тоже пропустил это, пока однажды мне не понадобился, - тогда ему пришлось как Google, как плохой мальчик: D – Chris

+1

Похоже, что объем вложенных ng-повторов может вызвать много осложнений. Например, переменная var «фильтруется» не распознается родительским циклом ng-repeat, который должен отображаться/скрываться на основе «отфильтрованного» – lostalien