#html #css #angular
#HTML #css #angular
Вопрос:
<div *ngFor="let item of items">
<div>Title</div>
<div class="show-more" (click)="do something">Show more</div>
<div class="extra-content">
<p>lorum ipsum bla bla bla</p>
</div>
</div>
Как вы можете переключить дополнительный контент div, нажав на элемент показать больше div.
это должно быть уникальным для каждого элемента в коллекции.
Таким образом, глобальная переменная не может быть использована, потому что это приведет к запуску всех элементов в коллекции (одновременно).
Комментарии:
1. Создайте новый компонент, который содержит HTML-содержимое для каждого
item
и передайте[item]
через@Input
. Таким образом, он может иметь свои собственные переменные открытия / закрытия / состояние, не влияя на другиеitem
.
Ответ №1:
Добавьте новое свойство show
в item
, как показано ниже
items = items.map(item => ({...item, show: false}))
затем переключите его щелчком мыши.
<div *ngFor="let item of items">
<div>Title</div>
<div class="show-more" (click)="item.show = !item.show">Show more</div>
<div *ngIf = "item.show" class="extra-content">
<p>lorum ipsum bla bla bla</p>
</div>
</div>
это настроит отображение элемента уникально для каждой строки / элемента