Любой обходной путь для ng-repeat внутри ng-view

У меня есть одностраничное приложение, которое использует ngRoute для смены страниц в ng-view. Переключение работает хорошо. Я столкнулся с проблемой, когда на одной из html-страниц, отображаемых ngview, есть таблица ngRepeat. Прочитав несколько сообщений, я заметил, что ngrepeat нельзя использовать внутри ngview. Любое обходное решение?

index.html (главная страница)

...
<div id="main" class="container">
    <div ng-view></div>
</div>
...

EventList.html (отображается ng-view)

<div id="listView" >
    <div ng-controller="EventListCtrl">
        <table class="one">
            <thead>
            <th>EventId</th>
            <th>Heading</th>
            <th>EventDate</th>
            <th>EventTime</th>
            <th>UserId</th>
            </thead>
            <tbody>
                <tr ng-repeat="item in items ">
                    <td>{{item.EventId}}</td>

                </tr>
            </tbody>
        </table>
    </div>
</div>

ng-repeat="item in items" не заполняется, все мои угловые функции работают нормально


person Plengo    schedule 04.04.2016    source источник
comment
это даже не имеет никакого смысла. Что вы имеете в виду, говоря, что ngRepeat нельзя использовать внутри ngView? Такого ограничения нет. Пожалуйста, покажите рабочий пример ваших ожидаемых и фактических результатов, чтобы продемонстрировать вашу проблему.   -  person Claies    schedule 04.04.2016


Ответы (1)


Angular по умолчанию может иметь только 1 активный ng-view в любой момент времени. Вы можете обойти это, поместив ng-view внутри div, а затем управлять видимостью этого div с помощью директивы ng-if.

<div ng-if="someCondition">
    <ng-view></ng-view>
</div>

<div ng-if="!someCondition">
    <ng-view></ng-view>
</div>

Примечание: не рекомендуется иметь несколько ng-view.

РЕДАКТИРОВАТЬ: Перечитав ваш вопрос, я думаю, может быть, вы имели в виду использование ng-repeat внутри элемента ng-view?

<ng-view>
   <div ng-repeat="...."> </div>
</ng-view>

Это должно работать нормально.

person FvB    schedule 04.04.2016
comment
У меня есть ‹div ngView›, который отображает html-страницу, отображаемая html-страница имеет ‹table › .....‹tr ng-repeat=item in items› … но никогда не заполняется. Я постараюсь отредактировать свой пост, чтобы добавить код - person Plengo; 04.04.2016
comment
Насколько я могу судить, ваш код должен работать нормально. Вы уверены, что элементы заполняются вашим контроллером? - person FvB; 04.04.2016