ошибка TS2339: свойство 'флажок' не существует для типа 'ElementRef <any>' - PullRequest
0 голосов
/ 14 июня 2019

Код отлично работает на локальной машине, но при попытке создать сборку с использованием

ng build --prod

код выглядит следующим образом -

import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
import { Global } from 'src/app/global.variables';

export class FiltersComponent implements OnInit {

  @ViewChild('extraMarkRadio') extraRadioRef: ElementRef;

  constructor(
    public global: Global
  ) {
  }

  ngOnInit() {
    .....
  }


  checkExtraMarkRadio() {
    const extra_radio = this.extraRadioRef;
    extra_radio.checked = true;
  }

}

при создании сборки выдает ошибку -

error TS2339: Property 'checked' does not exist on type 'ElementRef<any>'

если я изменю строку кода на -

        const extra_radio = this.extraRadioRef.nativeElement;

тогда сборка производится с любыми ошибками, но при запуске приложения выдает ошибку -

nativeElement is undefined.

1 Ответ

0 голосов
/ 15 июня 2019

Это может немного сбить с толку, но попробуйте следующее:

Первый

Попробуйте следующее

@ViewChild('extraMarkRadio' , {read: ElementRef}) extraRadioRef: ElementRef;

Как мы видим, мы передаем второй аргументсодержащий объект конфигурации со свойством read, установленным в ElementRef.

Это свойство read будет точно указывать, что мы пытаемся внедрить, в случае, если доступно несколько возможных инъекций.

В этом случаемы используем свойство read, чтобы указать, что мы хотим получить элемент DOM (обернутый ElementRef) ссылки на соответствующий шаблон, а не компонент.

Second

Попробуйте использовать тип компонентавместо ссылки на шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...