Angularjs: Как получить первый индекс с помощью ng-if?

0
  <accordion-group ng-repeat="group in results.groups" ng-if="group.rooms.length > 0"
                   is-open="isOpen" ng-init="isOpen = $index === 0">

Как сделать isOpen перейти в $ index === 1, когда 0 скрывается в ng-if?

  • 0
    Это может помочь предоставить более подробную информацию о том, что вы пытаетесь достичь. например, аккордеон должен автоматически открыться при создании.
Теги:
filter
ng-repeat

2 ответа

0

ng-show и ng-hide должны работать отлично с булевыми значениями (длина комнат в вашем случае).

Демо в plnkr:

$scope.groups = [
  { 'name': 'First group', 'rooms': [{'name': 'room101'}] },
  { 'name': 'Second group', 'rooms': [] },
  { 'name': 'Third group', 'rooms': [{'name': 'room301'}] },
]

<accordion-group ng-repeat="group in groups" ng-show="group.rooms.length">{{group.name}}</accordion-group>
0

Скройте его с помощью ng-hide, который покинет часть DOM и сохранит область действия. Поэтому замените ng-if на ng-hide, чтобы добиться этого:

<accordion-group ng-repeat="group in results.groups" ng-show="group.rooms.length > 0" ...>

<accordion-group ng-repeat="group in results.groups" ng-hide="!group.rooms.length > 0" ... >

Ещё вопросы

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