html - Angular @Input 数组 - 如何引用不同的数组对象字段名称?
问题描述
我想设置一个可重用的下拉菜单,通过它我将一组对象传递给我的下拉组件的@Input,然后更新其中的一些标签。
数组字段每次都会不同。例如,一个数组可能有一个displayName
字符串字段,而另一个数组将有一个称为id
我要引用的字段的字符串。
我不确定如何在每个实例的基础上引用这些。
下拉 HTML:
<ng-container *ngFor="let item of content">
<span class="button-label">{{item.whatever-the-field-is}}</span>
</ng-container>
下拉组件:
@Input() content: Array<any> = [];
下拉实例:
<multi-button-dropdown [content]="(myArrayObservable$ | async)"></multi-button-dropdown>
示例数组:
users = [
{
id: 'afvnf102841-251',
username: 'Joe Bloggs'
}
...
]
members = [
{
displayName: 'Han Solo',
location: 'Space'
}
...
]
问题:
我如何设置 dropdown.html/component 以便<span>
{{item....}}
引用将displayName
用于 members[] 实例、id
users[] 实例等,由另一个 @Input 值传入?
解决方案
一种快速的方法是在不知道其名称的情况下使用keyvalue
内部的管道*ngFor
来迭代对象属性。
<ng-container *ngFor="let item of content">
<span class="button-label" *ngFor="let prop of item | keyvalue">
{{ prop.key }} - {{ prop.value }}
</span>
</ng-container>
推荐阅读
- amazon-web-services - 如何使 AWS Cloud9 控制台垂直拆分?
- makefile - 为 AWS Lambda 使用可移植的 Makefile
- python - 从大容量处理中挤出性能
- postgresql - 如何将 PostgreSQL JSONB 数据与外部表连接起来
- go - 去坏进口
- r - 将 tibble 的值与两列的 tibble 合并
- leaflet - 有没有办法在 CartoDB 中只显示城市标签?
- encryption - 如何在lua中将字节转换为字符串
- php - Elementor 两次显示相同的简码(仅在编辑器上)
- python - 100k 条记录的 PyMongo Bulk Upsert 性能