例如使用此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>
我在这里做错了什么?
答案 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>
与ngFor
中angular 2
的{{1}}相似。为了让你的ng-repeat
工作,循环项必须是一个数组,在你的情况下,行是一个对象,而不是一个数组,所以很明显它不会工作。
在你的第二个陈述中
angular 1
循环项ngFor
是一个包含一个元素的数组,因此它将起作用并将生成输出
<tr *ngFor="let row of rows.TableRows">
<td>{{row.Name}}</td>
<td>{{row.Length}}<td>
</tr>
我希望这就是你要找的东西。