Javascript 如何在Angular 2中遍历对象属性
这是我的对象(它有n个动态键。在下面的示例中,我只显示了两个) 下面是我尝试循环抛出上述值并打印所有值的过程Javascript 如何在Angular 2中遍历对象属性,javascript,loops,angular,iteration,ngfor,Javascript,Loops,Angular,Iteration,Ngfor,这是我的对象(它有n个动态键。在下面的示例中,我只显示了两个) 下面是我尝试循环抛出上述值并打印所有值的过程 <div *ngFor='let item of obj ; let i = index;'> <p *ngFor="let value of obj.i">{{value}} </div> {{value} 但上述措施似乎不起作用。我做错了什么?正确的语法是什么?您可以这样做: <li *ngFor="let
<div *ngFor='let item of obj ; let i = index;'>
<p *ngFor="let value of obj.i">{{value}}
</div>
{{value}
但上述措施似乎不起作用。我做错了什么?正确的语法是什么?您可以这样做:
<li *ngFor="let o of obj">
<p *ngFor="let objArrayElement of generateArray(o)"> {{objArrayElement}} </p>
</li>
对@eg16的答案稍加修改,它对我来说就像一个符咒- GeneratorArray函数如下所示-
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>
{{item.key}:{{item.value}
从6.1版开始,Angular提供了:
<li *ngFor="let item of (data | keyvalue)">{{item.key}}: {{item.value}}</li>
{{{item.key}:{{{item.value}
这使得以前使用Object.keys引用或其自身实现的解决方法过时。您是否尝试了
obj[i]
而不是obj.i
?@Aarmora很高兴知道这对您有帮助。:)但是在angular2中不允许obj的let o,因为obj不是迭代的,对吗?
<li *ngFor="let item of generateArray(data)">{{item.key}}: {{item.value}}</li>
<li *ngFor="let item of (data | keyvalue)">{{item.key}}: {{item.value}}</li>