Как решить прокрутку к выбранному изображению в массиве изображений?

У меня есть массив изображений в дочернем компоненте и такой же массив изображений в родительском компоненте. Когда я выбираю одно изображение в дочернем компоненте, я хочу, чтобы родительский компонент нашел это изображение в массиве и прокрутил до него.

Я использую BehaviorSubject в службе для получения выбранного изображения, но я не могу решить проблему использования этого выбранного значения в моем родительском компоненте и прокрутить до этого изображения в массиве.

Вот что у меня есть в моем родительском компоненте:

selectedImg: Image;
images: Image[] = [];
@Input() selIm: Image;

@ViewChildren('someId') someId: QueryList<ElementRef>;

ngOnInit() {
    this.myservice.selectedImage.subscribe(selected => {
        this.selectedImg = selected; /// getting selected image from child component
      });

    this.images = this.myservice.getImages(); // getting all images from service
} 

ngAfterViewInit() {

    this.someId.changes.subscribe(x=> {
           this.someId.toArray().map(y=>{
             y.nativeElement.querySelector('someClass').scrollIntoView();
           })
    })

}

И в моем шаблоне у меня есть:

   <div class="someClass" *ngFor='let img of images;' #someId [selIm] ="selectedImg">
      <img src="{{img.link}}" />
  </div>

Я пробовал с @ViewChildren, но продолжаю получать ошибки undefined. Благодаря!

0 ответов

Другие вопросы по тегам