Ioni c 4 - получение свойства ElementRef по директиве - PullRequest
0 голосов
/ 19 февраля 2020

Мне нужно получить значение ElementRef в директиве для динамического применения класса к элементу.

Моя директива:

import { Directive, ElementRef, Renderer2 } from '@angular/core';

@Directive({
  selector: '[scrolling]'
})

export class ScrollingDirective {

  constructor(public renderer: Renderer2, public el: ElementRef) {
    console.log(this.el);
    console.log(this.el.nativeElement.scrollWidth);
    if (el.nativeElement.scrollWidth > el.nativeElement.clientWidth) {
      this.renderer.addClass(el.nativeElement, 'scrollear');
    }  
  }

}

Затем я назначаю директиву элементу DOM:

<ion-label scrolling>hello world</ion-label>

Проблема в том, что в конструкторе директивы я не могу получить значения элемента, однако с console.log я могу видеть значения правильно, но не могу их получить .

Мне нужно получить эти значения, но при обращении к ним это значение равно 0.

console.log(this.el);

1 Ответ

0 голосов
/ 19 февраля 2020

Я думаю, вы не можете получить значения в конструкторе, потому что он еще не рендерился. Попробуйте получить к ним доступ в ngAfterViewInit

...