Angular7, получить ElementRef - PullRequest
       0

Angular7, получить ElementRef

0 голосов
/ 19 февраля 2020

Мне нужно получить ElementRef в дочерних узлах.

мой шаблон

<div #charts *ngFor="let tag of _tags">
  <jqxBulletChart
    style="margin-left: 10px; float: left;"
    [width]='50'
    [height]='350'
    [barSize]='"35%"'
    [labelsFormat]='"c"'
    [title]="''"
    description="{{tag.configuration.name}}"
    [showTooltip]='true'
    [labelsFormatFunction]="labelsFormatFunction"
    [tooltipFormatFunction]="tooltipFormatFunction" [ticks]='ticks'
    [ranges]='tag.value'
    [pointer]='pointer'
    [orientation]="'vertical'"
  >
  </jqxBulletChart>
</div>

Я звоню

@ViewChildren('charts') infoCharts: ElementRef;

и получаю ребенка

for (let chart of this.arrCharts) {
            console.log(chart);
            console.log(chart.nativeElement.lastChild)
            let child: jqxBulletChartComponent = chart.nativeElement.lastChild;
            console.log(child);
            console.log(+this.tags[count].displayValue);
            child.val(+this.tags[count].displayValue || 0);
            // child.val(20);
            count++;
        }

но мой "ребенок" должен быть типа ElementRef, и я не знаю, как это сделать

Ответы [ 3 ]

1 голос
/ 19 февраля 2020

Пожалуйста, попробуйте ниже код, он даст вам ElementRef для jqxBulletChart

@ViewChildren(jqxBulletChartComponent,{read: ElementRef}) hellos: QueryList<ElementRef>;

Обратите внимание, что вам нужно предоставить JQXBulletChartComponent, и вы должны прочитать viewChildren как ElementRef.

Позвольте мне знаю, работает ли он для вас.

Счастливое кодирование !!!

1 голос
/ 19 февраля 2020

Попробуйте это:

import {AfterViewInit, Component, QueryList, ViewChildren, ElementRef} from '@angular/core';

@Component({
  selector: "my-app",
  templateUrl: "./app.component.html",
  styleUrls: ["./app.component.scss"]
})

export class AppComponent {
  name = "Angular";
  @ViewChildren("charts") charts: QueryList<ElementRef>;

  ngAfterViewInit() {
    this.charts.forEach(c => console.log(c));
  }
}
1 голос
/ 19 февраля 2020

Я думаю, что это не может быть экземпляром ElementRef, потому что вы используете ngFor, есть несколько ссылок на то, что вы называете #charts. Вместо этого он должен быть QueryList

https://netbasal.com/understanding-viewchildren-contentchildren-and-querylist-in-angular-896b0c689f6e

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...