У меня есть простая настройка объекта навигации, в которой перечислены элементы nav (и должны ли они отображаться в основном навигаторе или нет). Кажется, что когда я пытаюсь смешать ng-if с ng-repeat, все разваливается, но когда я смешиваю ng-show с ng-repeat, он отлично работает (но в итоге я получаю кучу скрытых элементов, хотите добавить в DOM).
<section class="nav">
<a ng-repeat="(key, item) in route.routes"
ng-href="{{key}}"
ng-show="item.nav"
>
{{item.label}}
</a>
</section>
Но следующее не работает (обратите внимание, что ng-show
теперь ng-if
):
<section class="nav">
<a ng-repeat="(key, item) in route.routes"
ng-href="{{key}}"
ng-if="item.nav"
>
{{item.label}}
</a>
</section>
Объект маршрутов выглядит как
routes: {
'/home': { label: 'Home', nav: true },
'/contact': { label: 'Contact', nav: false},
// etc
}
При попытке использовать ng-if
я получаю следующую ошибку:
Ошибка: несколько директив [ngIf, ngRepeat] с просьбой о включении:
Я предполагаю, что это пытается сказать мне, что я не могу заявить это выражение для существующего дважды. Я мог бы использовать ng-if
для внутреннего элемента, но я думаю, что все равно получаю кучу пустых внешних тегов a
.