如何在角度模板中迭代字典?

Posted

技术标签:

【中文标题】如何在角度模板中迭代字典?【英文标题】:How to iterate dictionary in angular template? 【发布时间】:2018-08-09 09:28:48 【问题描述】:

在我们的 Angular 应用程序中,我从控制器返回了一个字典。如何使用 *ngFor 在 html 模板中显示相同的内容?

请任何人帮助实现同样的目标

【问题讨论】:

Iterate over object in Angular的可能重复 【参考方案1】:

您可以创建一个将对象(字典)映射到数组的管道 包含类型: key: string,value: any

类似这样的:

@Pipe(name: 'mapToArray')
export class MapToArray implements PipeTransform 
  transform(value, args:string[]) : any 
    let arr = [];
    for (let key in value) 
      arr.push(key: key, value: value[key]);
    
    return arr;
  

并像在 html 文件中那样使用它:

<span *ngFor="let item of content | mapToArray">           
  Key: item.key, Value: item.value
</span>

【讨论】:

我已经导入了类。我收到以下错误:找不到管道'mapToArray'。 你需要像在你的模块中声明数组中的组件一样声明管道【参考方案2】:

您可以像这样使用内置的键值管道:

<span *ngFor="let item of content | keyvalue">           
  Key: item.key, Value: item.value
</span>

【讨论】:

我比投票的答案更喜欢这个答案,因为它使用了内置功能 +1

以上是关于如何在角度模板中迭代字典?的主要内容,如果未能解决你的问题,请参考以下文章

如何遍历 django 模板中的嵌套字典

如何在迭代字典时从字典中删除项目?

Flask 学习-89.模板中迭代字典.items()

Django迭代列表中的字典并在模板中显示数据

字典值不能通过在 django 模板中使用它们的对应键来迭代[重复]

字典值无法通过在django模板中使用相应的键进行迭代[重复]