Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   ng-repeat внутри ng-repeat (https://javascript.ru/forum/angular/42395-ng-repeat-vnutri-ng-repeat.html)

cartrege 24.10.2013 14:11

ng-repeat внутри ng-repeat
 
Здравствуйте!

Столкнулся со следующей проблемой: от сервера приходят данные по баннерам, где у каждого баннера есть массив быстрых ссылок.

Список баннеров выводится c помощью ng-repeat. Внутри нужно вывести (кроме основной информации) еще и список быстрых ссылок - для чего использую ng-repeat внутри первого. Но он ничего не выводит. Хотя списки не пустые у всех баннеров.

Вот какая разметка сейчас:
<!-- Выводим список баннеров -->
    <div class="banner" ng-repeat="b in banners">
        <div class="ad">
            <div class="bannerId"># {{ b.BannerID }}</div>
            <div class="title"><a href="http://{{ b.Domain }}" target="_blank">{{ b.Title }}</a></div>

            <!-- Выводим список быстрых ссылок -->
            <div class="shortLinks" ng-if="b.Sitelinks.length > 0">
                test <!-- "test" поставлен для теста. Он выводится. Т.е. условие срабатывает, если верно понимаю -->
                <a ng-repeat="l in b.Sitelinks" href="http://{{ l.Href }}" target="_blank">{{ l.Text }}</a>
            </div>

            <div class="text">{{ b.Text }}</div>
            <div class="greenLink"><a href="http://{{ b.Domain }}">{{ b.Domain }}</a></div>
        </div>
    </div>


Подскажите, пожалуйста, можно ли использовать ng-repeat внутри другого ng-repeat? И если можно, тогда в чем может быть причина того, что не выводится список быстрых ссылок?

cartrege 24.10.2013 14:25

Задал вопрос и тут же пришел в голову ответ. Сейчас использую индекс, чтобы пройтись по быстрым ссылкам.

<!-- Выводим список баннеров -->
    <div class="banner" ng-repeat="(bIndex, b) in banners">
        <div class="ad">
            <div class="bannerId"># {{ b.BannerID }}</div>
            <div class="title"><a href="http://{{ b.Domain }}" target="_blank">{{ b.Title }}</a></div>

            <!-- Выводим список быстрых ссылок -->
            <div class="shortLinks" ng-if="b.Sitelinks.length > 0">
                <a ng-repeat="l in banners[bIndex].Sitelinks" href="http://{{ l.Href }}" target="_blank">{{ l.Text }}</a>
            </div>

            <div class="text">{{ b.Text }}</div>
            <div class="greenLink"><a href="http://{{ b.Domain }}">{{ b.Domain }}</a></div>
        </div>
    </div>


Часовой пояс GMT +3, время: 14:04.