@GaserV

Как правильно юзать ng-click + ng-show/hide?

Имеется DOM(ниже). Мне нужно реализовать что-то вроде вопрос-ответ, но ответ открывается при клике на вопрос и скрывается также либо при клике на следующий вопрос. Сейчас проблема в том, что при клике на вопрос открываются сразу все ответы, а нужно только для текущего вопроса.

<div class="options">		
		<div ng-click="showOptions=!showOptions" class="options-title">Вопрос +</div>
		<div ng-show="showOptions" class="options-content">
			<ul>
				<li><span>ответ</span><span class="icon-edit"></span></li>
				<li><span>ответ</span><span class="icon-edit"></span></li>
			</ul>
		</div>
		<div ng-click="showOptions=!showOptions" class="options-title">Вопрос +</div>
		<div ng-show="showOptions" class="options-content">
			<ul>
				<li><span>ответ</span><span class="icon-edit"></span></li>
				<li><span>ответ</span><span class="icon-edit"></span></li>
			</ul>
		</div>
	</div>


И второй вопрос. Можно ли как-то анимировать, чтобы было что-то вроде как jq slideToggle()?
  • Вопрос задан
  • 325 просмотров
Решения вопроса 1
Пары вопрос-ответ оформляете в ng-repeat. По клику меняете внутри каждого вопроса параметр, допустим, opened. Для плавности можете использовать ng-class. На открытый элемент вешать класс с CSS transition
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
drugoi
@drugoi
Front-end Developer
Задавайте какой-то уникальный ключ для открытия элементов.

Например:
<div ng-click="showOptions1=!showOptions1" class="options-title">Вопрос +</div>
    <div ng-show="showOptions1" class="options-content">
      <ul>
        <li><span>ответ</span><span class="icon-edit"></span></li>
        <li><span>ответ</span><span class="icon-edit"></span></li>
      </ul>
    </div>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы