Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Angular 2中遍历对象属性_Javascript_Loops_Angular_Iteration_Ngfor - Fatal编程技术网

Javascript 如何在Angular 2中遍历对象属性

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

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

下面是我尝试循环抛出上述值并打印所有值的过程

 <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>