У меня есть следующие циклы ng-repeat, которые распаковывают данные JSON в Аккордеон:
<accordion close-others="oneAtATime">
<accordion-group ng-repeat="service in userPF.custom.services">
<accordion-heading><input type="checkbox" name="status" disabled>On <input type="checkbox" name="status" disabled checked>Off {{service.name}}</accordion-heading>
Related Items:<br>
<div class="secondary" ng-repeat="fields in userPF.custom.fields">
<span ng-show="checkForMatch(service.name, fields.services)">
<span ng-repeat="value in fields.values">
{{value.name}}<br>
</span>
</span>
</div>
</accordion-group>
</accordion>
Первая поездка по циклу {{service.name}} всегда будет возвращать данные, но второе значение {{value.name}} может не совпадать. Если это не так, я не хочу, чтобы div или span отображался, просто заголовок. Я пробовал некоторые варианты ng-if, но не приблизился к тому, чтобы сказать, получаю ли я данные или нет.
См. Эту ссылку. Как показывает этот код, и его работоспособность, вы можете иметь ng-show внутри ng-repeat.
<div ng-app ng-controller="RepeatTestCtrl">
<ul ng-repeat="item in items">
<li ng-show="item.id.length == 0">{{item.name}} is even</li>
<li ng-show="item.id % 2 == 1">{{item.name}} is odd</li>
</ul>
</div>
function RepeatTestCtrl($scope) {
$scope.items = [
{ id: 1, name: 'test 1' },
{ id: 2, name: 'test 2' },
{ id: 3, name: 'test 3' },
{ id: 4, name: 'test 4' }
];
}