Renderer2 не работает во время наследования в angular7 - PullRequest
1 голос
/ 07 ноября 2019

Мне нужно получить доступ к элементу dom и манипулировать им в другом классе
homeComponent.ts

   import{TableUtility} from "src/shared/table-utility"; 
   export class HomeComponent extends TableUtility{
   constructor(){super()}

homeComponent.html

<button (click)="toggleClass($event)"><img src="img.png"></button>

tableUtility.ts

import{Table} from "primeng/table";
import{Renderer2} from "@angular/core";

export class TableUtility{
constructor(public render:Renderer2)
togglClass(ev){
console.log(this.render.addClass(ev.target,"active");
}

Ошибка: невозможно прочитать addClass of undefined

Если я использую его в домашнем компоненте, я могу прочитатьRenderer2. Может кто-нибудь сказать это с уважительной причиной и как это решить.

1 Ответ

2 голосов
/ 07 ноября 2019

Вам необходимо определить зависимости в конструкторе подкласса и передать их суперклассу через super():

export class HomeComponent extends TableUtility{
constructor(public render:Renderer2){super(render)}
...