Я пытаюсь добавить начальную загрузку к элементу, используя директиву Angular:
import { Directive, ElementRef, Input, OnInit, Renderer } from '@angular/core';
@Directive( {
selector: '[myPopup]'
} )
export class MyPopupDirective implements OnInit
{
constructor(
private element: ElementRef,
private renderer: Renderer,
) { }
ngOnInit()
{
this.renderer.setElementAttribute( this.element.nativeElement, "triggers", "mouseenter:mouseleave" );
this.renderer.setElementAttribute( this.element.nativeElement, "ngbPopover", "Hello World!!" );
this.renderer.setElementAttribute( this.element.nativeElement, "popoverTitle", "Testing" );
}
}
Я планирую использовать параметры @Input, чтобы я мог настроить всплывающее окно, поэтому я предположил, используя implements OnInit
был бы правильный путь.Вот мое использование:
<a myPopup href="...">Hover for popup</a>
Я могу сказать, что моя директива работает, потому что атрибуты добавлены в HTML, но всплывающее окно не работает.Я добавил встроенные атрибуты всплывающих окон без использования директивы, и все заработало.Я заметил, что атрибуты ng-reflect-*
отсутствовали, когда я использовал мою директиву, но были, когда я добавил атрибуты встроенными.Я попытался переместить код из ngOnInit
в конструктор, но он все еще не работал.