Добавление попсового загрузчика с угловой директивой - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь добавить начальную загрузку к элементу, используя директиву 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 в конструктор, но он все еще не работал.

...