Можно ли применить директиву angular для компонента? - PullRequest
0 голосов
/ 28 апреля 2020

Я использую Angular 9, и я создал директиву, которая добавляет элементы опции к DOM select

<select populateData></select>

Это код для директивы

@Directive({
  selector: '[populateData]'
})
export class PopulateDataDirective {
    constructor(private el: ElementRef, private control: NgControl,
        private cfr: ComponentFactoryResolver,
        private vcr: ViewContainerRef,
        private periodoService: PeriodoService) {

        this.dataService.getData().subscribe(data => {
            data.forEach(x => {
                this.el.nativeElement.innerHTML += '<option value="'+x.id+'">'+
                    x.text+'</option>';
            });
        });
    }
}

Ладно, возможно, добавление элементов option путем манипулирования DOM - не лучшая идея, но я мог бы найти другой способ, поэтому я перехожу на небулярные компоненты и не хочу создавать пользовательский компонент для инкапсуляции nb-select, вместо этого я ' Я бы предпочел изменить директиву и применить ее к компоненту nb-select, примерно так:

<nb-select populateData></nb-select>

Но это не работает, кажется, Angular игнорирует директиву для компонентов, есть ли способ достичь этого?

...