angular templateRef nativeElement - пустой комментарий вместо исходного элемента - PullRequest
0 голосов
/ 08 мая 2018

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

import { Directive, Input, TemplateRef, ViewContainerRef,OnInit } from '@angular/core';

@Directive({
  selector: '[radioList]'
})
export class RadioListDirective implements OnInit  {



  constructor(private templateRef: TemplateRef<any>, private vcRef: ViewContainerRef) {

  }

  ngOnInit() {

    console.log(this.templateRef);
    this.vcRef.createEmbeddedView(this.templateRef);

  }
}

и

<div>
  test
</div>


<select *radioList><option>1</option><option>2</option></select>

Он должен регистрировать TemplateRef, у которого ElementRef nativeElement равен select. Но результат и пустой комментарий, что его следующий элемент - select.

enter image description here

1 Ответ

0 голосов
/ 22 февраля 2019

Решения Hacky в настоящее время работают:

Хватай следующего брата:

this.templateRef.elementRef.nativeElement.nextSibling

Использовать viewContainerRef.get

(this.viewContainerRef.get(0) as any).rootNodes[0]

(Обратите внимание, из вашего примера кода вы использовали vcRef вместо viewContainerRef, как я использовал здесь.)

...