Как выйти из цикла ng-Repeat?

0

У меня есть следующие циклы 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, но не приблизился к тому, чтобы сказать, получаю ли я данные или нет.

  • 0
    Можете ли вы разместить свой пример в Интернете с соответствующими объектами на сайте, такими как plunker или jsfiddle?
  • 0
    Контроллер огромен, но я думаю, что смогу с этим справиться, да. Займет у меня минуту ...
Показать ещё 7 комментариев
Теги:
angularjs-ng-repeat

1 ответ

0

См. Эту ссылку. Как показывает этот код, и его работоспособность, вы можете иметь 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' }
    ];
}

http://jsfiddle.net/b004t06z/41/

  • 0
    Здесь на основе длины, даже никогда не будет отображаться
  • 0
    Это не обязательно неправильное решение, но оно не удаляет элемент из DOM, оно только не показывает его. Так все еще появляется в Аккордеоне. Может быть, мне нужно изменить порядок повторных циклов ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню