【发布时间】:2017-04-13 07:14:39
【问题描述】:
我试图让ngFor 遍历一个数组。意识到无论我输入什么,它都没有做任何事情。
<p ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
这显然是非常错误的,不会返回任何错误。有人知道吗?
【问题讨论】:
我试图让ngFor 遍历一个数组。意识到无论我输入什么,它都没有做任何事情。
<p ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
这显然是非常错误的,不会返回任何错误。有人知道吗?
【问题讨论】:
应该是
<p *ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
更多信息
尝试在*ngFor上方打印
{{tempAahsbdkasjbdnpplicants | json}}
通过打印此内容,您将了解您的 JSON 是否可用
【讨论】:
* 在 ngFor 之前丢失。试试这个:
<p *ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
【讨论】:
tempAahsbdkasjbdnpplicants 的结构是什么?如果它是一个对象数组,您可能需要选择像 {{ applier.name }} 这样的属性或到达整个对象以将其显示为 json {{ applier | json}}
应该是,
<p *ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
【讨论】:
ngFor 是 angular2 中的指令。您可以将内容包装在 template 标记中并将指令应用于它,您应该会得到预期的错误
例如:
<template ngFor [ngForOf]="episodes" let-episode>
<app-for-example [episode]="episode">
{{episode.title}}
</app-for-example>
</template>
*ngFor 是这个精确指令的语法糖。在内部,*ngFor 处理如下:
1.标签包裹在<template>标签中
2.*ngFor然后被转换成指令语法ngFor并应用于<template>标签
我猜你一定是在参考一些示例/教程而错过了这部分
【讨论】:
错过*
<p *ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
它是 Angular 开发团队维护的标准。更多详情请查看docs
注意:* 表示结构指令。
【讨论】:
我假设你的组件看起来像这样,你有一个与组件关联的数组
export class SomeComponent {
somearray: string[];
}
在您的 html 中,您可以访问此数组以显示重复元素,如下所示,
<p *ngFor="let applier of somearray">{{applier}}</p>
但在您的情况下,我假设您故意将无效的数组名称如下所示,并期望在运行时引发错误
<p *ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
但在这种情况下,角度不会引发错误,这是正常行为。当您使用不包含在范围内的变量名称(例如“tempAahsbdkasjbdnpplicants”)时,角度将其假定为“未定义”值。当您尝试使用 *ngFor 迭代“未定义”或“空”变量时,Angular只是简单地忽略迭代而不引发错误。
【讨论】: