Я не знаю, как установить видимый класс только для щелкнутого элемента в частичном компоненте. Итак, у меня есть тема с:
<div class="photo-container" *ngFor ="let i of modalImages; let index = index">
<div [ngClass]="ImageContainer">
<i class="ionicons ion-ios-close remove-icon" (click)="deleteImageEvent(index)"></i>
<img (click)="onImageClickEvent(index)" src="{{ i.thumb }}">
</div>
</div>
В компоненте я их инициализирую..
export class ImageModal implements OnInit, AfterViewInit {
@ViewChild('reviewFileInput') reviewFileInput: ElementRef;
@Input('modalImages') public modalImages: any;
@Input('imagePointer') public imagePointer: number;
@Output('cancelEvent') cancelEvent = new EventEmitter<any>();
@Input('imageClass') public imageClass: any;
...
Затем в этом следующем шаблоне пусть он вызовет «добавить фото-компонент», который я хочу использовать в этом классе, который я объявляю следующим:
<ImageModal #imageModal
[modalImages]="images"
[isReviewPhotos]="true"
[imageClass]="classMap"
(cancelEvent)="cancelImageModel()"
[options]="options"
[isUploadButtonAvailable]="isUploadButtonAvailable"
(clickEvent)="onUploadClick()"
(handleEvent)="handleNgUpload($event)"
(deleteEvent)="deleteImage($event)"
(handleSelectedImgEvenet)="onImageClick($event)"
(imageContainer)="{'img-media-container': isImageSelected}"> // And this class which I want to use
</ImageModal>
затем в компоненте add-photo-component я хочу установить этот скрытый класс на щелкнутое изображение
onImageClick($event) {
if ($event && $event.index >= 0) {
this.selectedImage = this.images[$event.index];
this.isImageSelected = !this.isImageSelected;
}
}
стили:
.img-media-container{
border-radius: 10px;
border: 3px solid #4774c5;
padding: 3px;
}
Итак, как я могу применить класс только к одному выбранному элементу. Я знаю, что каким-то образом мне нужно взять индекс из основного шаблона, но у меня нет никаких идей, как я могу это реализовать.