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