Получение ширины всех дочерних компонентов, содержащихся в NgTemplate - PullRequest
1 голос
/ 06 мая 2020

У меня есть эта разметка в шаблоне. Я могу выполнить итерацию по его компоненту, используя get, но он не возвращает объект, который позволяет мне копаться достаточно глубоко в атрибутах HTML.

<ng-template #container></ng-template>

Я динамически добавляю компоненты к этому container выше.

Код моего компонента

@ViewChild("container", { read: ViewContainerRef }) appAsideContainer: ViewContainerRef;


for (var x = 0; x < this.appAsideContainer.length; x++) {
    let c: ViewRef = this.appAsideContainer.get(x);
    console.log(c);
}

c не дает мне доступа ни к element, ни к nativeElement, поэтому я могу получить offsetWidth

Is есть ли другой способ добиться этого?

1 Ответ

2 голосов
/ 07 мая 2020

Этого можно добиться, используя свойство rootNodes после преобразования в EmbeddedViewRef:

for (var x = 0; x < this.appAsideContainer.length; x++) {
  const viewRef = this.appAsideContainer.get(x) as EmbeddedViewRef<any>;
  const rootNode = viewRef.rootNodes[0];
  console.log(rootNode);
}  
...