angular - 如何使用异步管道和动态属性迭代对象中的数组?
问题描述
我有两个对象layers$
,arrayByLayerId$
并且我在组件中异步获取,对象的结构如下:
interface Layer {
id: number;
...
}
{
1: []
2: []
...
}
有没有办法使用模板中的异步管道迭代arrayByLayerId$
数组,如下所示(语法不正确,只是为了说明我试图实现的目标):
<div *ngFor="let layer of layers$ | async"
[attr.id]="layer.id">
<my-component *ngFor="let array of arrayByLayerId$[layer.id] | async" [array]="array"><my-component/>
</div>
谢谢 !
解决方案
arrayByLayerId$
在您访问其“layer.id”属性之前还没有值。它应该是这样的:
<my-component *ngFor="let array of (arrayByLayerId$ | async)[layer.id]" [array]="array"><my-component/>
推荐阅读
- pyspark - 如何删除pyspark中列标题中的空格以及如何将字符串日期转换为日期时间格式
- c++ - 无论如何在 C++ 中使用编码类型进行编码
- firebase - Firebase Firestore - 基于“where”查询参数的安全规则
- reactjs - 通过所有道具的HOC
- openlayers - 带有 OpenLayers 的 webgis 应用程序的预定义结构
- android - 如何正确创建 MultipleView 类型的 Recycler-View?
- nestjs - TypeORM 问题保存实体与级联真
- c++ - 带有 musl libc 的 Alpine linux 上的 OpenCascade 编译失败(mallinfo:有初始化程序但类型不完整错误)
- swift - 所选图像不会更改之前显示的图像
- flutter - 为什么我的 onPressed 回调不能使用 Bloc 调用我的 Bloc?