Angular2:ngFor遍历对象数组

时间:2017-10-05 17:55:42

标签: angular

例如使用此JSON:

{
  "TableRows": [
    {
      "Name": "Lord of the Rnis",
      "Length": "2:40"
    }
  ],
  "Category": "Fantasy"
}

进入这些课程:

export interface IMovies{
    Category: string;
    TableRows: ITableRows[];
}

export interface ITableRows{
    Name: string;
    Length: string;
}

以下ngFor逻辑非常有用,但它不是我想要循环的:

<tr *ngFor="let row of rows">
    <td>{{row.Category}}</td>
    <td>{{row.TableRows[0].Name}}</td>
    <td></td>
</tr>

这个逻辑不起作用:

<tr *ngFor="let row of rows.TableRows">
     <td>{{row.Name}}</td>
     <td>{{row.Length}}<td>
</tr>

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

在您的情况下,您的第一个声明将无效。

  

第一个陈述

function f(x) {
this.x = x;
}
var a = new f(1);
console.log(f);

function b(myVar) {
    myVar += 1;
    console.log(myVar);
}

b(a["x"]);
console.log(a);
console.log(a["x"]);

b(a["x"]);
console.log(a);
console.log(a["x"]);

这不起作用,因为function f(x) { this.x = x; } var a = new f(1); console.log(f); function b(myVar, val) { myVar[val] += 1; console.log(myVar[val]); } b(a, "x"); console.log(a); console.log(a["x"]); b(a, "x"); console.log(a); console.log(a["x"]); 中的<tr *ngFor="let row of rows"> <td>{{row.Category}}</td> <td>{{row.TableRows[0].Name}}</td> <td></td> </tr> ngForangular 2的{​​{1}}相似。为了让你的ng-repeat工作,循环项必须是一个数组,在你的情况下,行是一个对象,而不是一个数组,所以很明显它不会工作。

  

在你的第二个陈述中

angular 1

循环项ngFor是一个包含一个元素的数组,因此它将起作用并将生成输出

<tr *ngFor="let row of rows.TableRows">
     <td>{{row.Name}}</td>
     <td>{{row.Length}}<td>
</tr>

我希望这就是你要找的东西。