【问题标题】:ngFor doesn't throw errorngFor 不会抛出错误
【发布时间】:2017-04-13 07:14:39
【问题描述】:

我试图让ngFor 遍历一个数组。意识到无论我输入什么,它都没有做任何事情。

<p ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>

这显然是非常错误的,不会返回任何错误。有人知道吗?

【问题讨论】:

    标签: arrays angular ngfor


    【解决方案1】:

    应该是

    <p *ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
    

    更多信息

    更新

    尝试在*ngFor上方打印

    {{tempAahsbdkasjbdnpplicants | json}}
    

    通过打印此内容,您将了解您的 JSON 是否可用

    【讨论】:

      【解决方案2】:

      * 在 ngFor 之前丢失。试试这个:

      &lt;p *ngFor="let applier of tempAahsbdkasjbdnpplicants"&gt;{{applier}}&lt;/p&gt;

      【讨论】:

      • @NabilGhulam 检查我的答案
      • tempAahsbdkasjbdnpplicants 的结构是什么?如果它是一个对象数组,您可能需要选择像 {{ applier.name }} 这样的属性或到达整个对象以将其显示为 json {{ applier | json}}
      【解决方案3】:

      应该是,

      <p *ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
      

      【讨论】:

      • 你能把 tempAahsbdkasjbdnpplicants 里面的内容贴出来吗?
      • 它甚至没有制作,所以我想我会得到一些错误
      • 这显示了什么 {{tempAahsbdkasjbdnpplicants | json}}?
      【解决方案4】:

      ngFor 是 angular2 中的指令。您可以将内容包装在 template 标记中并将指令应用于它,您应该会得到预期的错误 例如:

      <template ngFor [ngForOf]="episodes" let-episode>
        <app-for-example [episode]="episode">
          {{episode.title}}
        </app-for-example>
      </template>
      

      *ngFor 是这个精确指令的语法糖。在内部,*ngFor 处理如下: 1.标签包裹在&lt;template&gt;标签中 2.*ngFor然后被转换成指令语法ngFor并应用于&lt;template&gt;标签

      我猜你一定是在参考一些示例/教程而错过了这部分

      【讨论】:

        【解决方案5】:

        错过*

        <p *ngFor="let applier of tempAahsbdkasjbdnpplicants">{{applier}}</p>
        

        它是 Angular 开发团队维护的标准。更多详情请查看docs

        注意:* 表示结构指令。

        【讨论】:

          【解决方案6】:

          我假设你的组件看起来像这样,你有一个与组件关联的数组

          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只是简单地忽略迭代而不引发错误。

          【讨论】:

            猜你喜欢
            • 2016-03-28
            • 1970-01-01
            • 2016-04-22
            • 2017-05-16
            • 2015-01-04
            • 2019-12-06
            • 2019-05-06
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多