angular - ngFor 不显示数组数据
问题描述
我有一个组件正在通过输入传递给多个对象。
<rooms-component [rooms]="Rooms$ | async"></rooms-component>
在子组件中,我将所有对象放在 OnChanges 的数组中
ngOnChanges() {
this.rmArray= Array(this.rooms);
}
在 HTML 中,我有一个 ngFor 来显示数据
<li *ngFor="let room of rmArray">
{{ room.name }}
</li>
这不显示任何内容。我怀疑这与我创建数组的方式有关。任何帮助表示赞赏。谢谢。
解决方案
不幸的是,这里几乎一切都错了。
首先,您可以将输入rmArray
直接链接到您的模板。
其次,如果由于某种原因您想对数据进行某种转换,最好的做法是通过输入的 setter 来完成。
@Input()
set rmArray(value) {
this.transformedData = PLACE YOUR LOGIC HERE
}
transformedData: any[];
最后,您需要不可变的操作。
this.rmArray= Array(this.rooms)
应该:
this.rmArray= new Array(this.rooms)
或者this.rmArray= [...this.rooms]
请记住,ngOnChanges
当您想要组合来自多个输入的数据时使用
推荐阅读
- r - 如何将代码放入 R markdown 环境中?
- python - 用于根据python中的指定日期在azure容器中定位数据的函数
- html - 模板工具包中的 Perl 多维散列
- python - 发送几个数据包后脚本无法正常运行
- javascript - 查看特定元素对应的第 n 个子元素?
- python - 在 Python 中用十进制数和一些字符分割字符串
- python - 为什么不能将活动列表附加到 Brightway2 中的另一个活动列表?
- python - 我可以在 Tensorflow 联邦学习 (TFF) 的 keras 模型中使用 class_weight
- maxima - 千里马的日志和千里马的 plog 和自己不一致?
- android - 从 Firebase 检索聊天消息时出现问题