Я просмотрел несколько связанных записей и документации, но по-прежнему не может ожидать ожидаемого поведения от @ViewChild.
В конечном счете, я пытаюсь установить положение прокрутки div. Этот элемент не является компонентом, а нормальным div в моем HTML.
Чтобы выполнить это, я пытаюсь использовать @ViewChild для получения элемента DOM, который мне нужен, и установить его значение прокрутки. (В стороне, если вы знаете лучший способ выполнить это без @ViewChild (или jQuery), ответы будут очень оценены!)
В настоящий момент @ViewChild возвращает только undefined. Пройдя какие-то фиктивные проверки: - Я обращаюсь к своему элементу в AfterViewInit - У меня нет других директив, таких как * ngIf или * ngFor для этого элемента.
Здесь контроллер:
import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
@Component({
selector: 'portfolio-page',
templateUrl: './portfolio-page.component.html',
styleUrls: ['./portfolio-page.component.scss']
})
export class PortfolioPageComponent implements AfterViewInit{
@ViewChild('gallery-container') galleryContainer: ElementRef;
ngAfterViewInit(){
console.log('My element: ' + this.galleryContainer);
}
}
И шаблон:
<div id='gallery-container' class='gallery-image-container'>
<div class='gallery-padding'></div>
<img class='gallery-image' src='{{ coverPhotoVm }}' />
<img class='gallery-image' src='{{ imagepath }}' *ngFor='let imagepath of imagesVm' />
</div>
Мой вывод прост: My element: undefined.
Как вы можете видеть, в настоящее время я пытаюсь получить доступ к элементу по идентификатору, но попробовал имя класса. Может ли кто-нибудь предоставить более подробную информацию о том, что ожидает запрос селектора ViewChild?
Я также видел примеры, где хеш "#" используется как идентификатор выбора, который использует @ViewChild -, но это вызывает ошибку анализа шаблона для меня С# gallery-container.
Я не могу думать ни о чем другом, что может быть ошибочным здесь. Вся помощь приветствуется, спасибо!
Полный код доступен здесь: https://github.com/aconfee/KimbyArting/tree/master/client/KimbyArting/components/portfolio-page