【发布时间】:2020-02-28 08:59:36
【问题描述】:
我有一个图表组件,如下所示:
<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 个 id 的问题。
所以,我决定将 div 的 id 从父组件作为@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}}"
但以上都不能从 Input 中设置动态 id。
【问题讨论】:
-
嗨@Hope你能告诉我你在
<div [id]="chartId">的`chartId`中得到了什么值吗? -
@Coderman 未定义
-
好的,我发布了答案,你可以试试,让我知道它是否适合你。
-
@Hope 你想动态设置 Id 属性吗?
标签: angular angular8 angular-input