如何遍历 Angular 2 中的对象属性

新手上路,请多包涵

这是我的对象(它有 n 个动态键。我在下面的示例中只显示了两个)

 let obj = {
abc:["some text", "some more text"],
xyz:["more text", "what do you think?", "I'm tired now"]

}

这是我尝试循环抛出以上内容并打印所有值

 <div *ngFor='let item of obj ; let i = index;'>
            <p *ngFor="let value of obj.i">{{value}}
 </div>

但以上似乎不起作用。我做错了什么,正确的语法是什么?

原文由 user6123723 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 329
2 个回答

你可以这样做:

 <li *ngFor="let o of obj">
   <p *ngFor="let objArrayElement of generateArray(o)"> {{objArrayElement}} </p>
</li>

其中 generateArray 看起来像:

 generateArray(obj){
   return Object.keys(obj).map((key)=>{ return obj[key]});
}

原文由 etrupja 发布,翻译遵循 CC BY-SA 3.0 许可协议

对 @eg16 的回答稍作修改,它对我来说就像一个魅力 -

generateArray 函数看起来像这样-

 generateArray(obj){
    return Object.keys(obj).map((key)=>{ return {key:key, value:obj[key]}});
}

和模板 -

 <li *ngFor="let item of generateArray(data)">{{item.key}}: {{item.value}}</li>

原文由 Avinash 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题