У меня есть компонент диаграммы, как показано ниже:
<div id="chart">
<ngx-charts-bar-horizontal [view]="view" [trimYAxisTicks]="false" [xAxisTickFormatting]="convertDecimalToNumber" [scheme]="colorScheme" [results]="data" [gradient]="gradient" [xAxis]="showXAxis" [yAxis]="showYAxis" [showXAxisLabel]="showXAxisLabel" [showDataLabel]="showDataLabel" [xAxisLabel]="xAxisLabel" [barPadding]="40">
</ngx-charts-bar-horizontal>
</div>
Я управляю всеми стилями этой диаграммы с помощью его родительского элемента div, который имеет id="chart"
, но мне нужно один и тот же компонент выше 2 раза в родительский компонент! Это создает проблему с теми же двумя идентификаторами.
Итак, я решил передать идентификатор div из родительского компонента в виде @Input()
, как показано ниже:
<div class="container">
<!-- Other tags -->
<child-component [chartId]="users"></child-component>
<!-- Other tags -->
<child-component [chartId]="visuals"></child-component>
<!-- Other tags -->
</div>
Редактировать дочерний компонент:
Файл TS:
@Input() chartId: string;
HTML:
<div [id]="chartId">
<ngx-charts-bar-horizontal [view]="view" [trimYAxisTicks]="false" [xAxisTickFormatting]="convertDecimalToNumber" [scheme]="colorScheme" [results]="data" [gradient]="gradient" [xAxis]="showXAxis" [yAxis]="showYAxis" [showXAxisLabel]="showXAxisLabel" [showDataLabel]="showDataLabel" [xAxisLabel]="xAxisLabel" [barPadding]="40">
</ngx-charts-bar-horizontal>
</div>
Я попробовал эти методы: [id] = "chartId", [attr.id] = "chartId", id = "{{chartId}}"
, но ничего из вышеперечисленного не помогло установить динамический c id из Input.