@carbanak01

Как на Angular 14 получить DOM элемент?

Здравствуйте!
Сёрфил в интернете в поисках ответа. Нашёл вариант с ViewChild.
Мой код в component html выглядит след образом:
<video id="qr-video" #video disablepictureinpicture="" playsinline=""></video>


Код в component.ts :
import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';

@Component({
  selector: 'app-scan',
  templateUrl: './scan.component.html',
  styleUrls: ['./scan.component.scss']
})

export class ScanComponent implements OnInit {

  @ViewChild('video') video: ElementRef; // Выводит ошибку "Свойство "video" не имеет инициализатора, и ему не гарантировано присваивание в конструкторе."

  constructor() {
    this.video = {} as ElementRef; // Написал чтобы решить проблему описанную выше
  }

  ngOnInit(): void {
      console.log(this.video); // Выводит пустой объект
  }

}


Написал в конструкторе this.video = {} as ElementRef; но в консоли выводится пустой объект.
  • Вопрос задан
  • 1195 просмотров
Решения вопроса 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
на этапе ngOnInit элемент еще не существует и ViewChild не присвоен.
Можно обратиться к нему позже, после ViewInit или можно добавить настроечку @ViewChild('video', { static: true})тогда он будет доступен в ините
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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