【问题标题】:Loop through array of JSON object with *ngFor (Angular 4)使用 *ngFor (Angular 4) 循环遍历 JSON 对象数组
【发布时间】:2018-07-02 07:15:04
【问题描述】:

我想遍历我的 json 文件中的对象数组。

json

[
  {
    "name": "Mike",
    "colors": [
      {"name": "blue"},
      {"name": "white"}
    ]
  },

  {
    "name": "Phoebe",
    "colors": [
      {"name": "red"},
      {"name": "yellow"}
    ]
  }
]

html

<div *ngFor="let person of persons">
   <p>{{person.name}}</p> <!-- this works fine-->
   <p *ngFor="let color of person.colors"> <!--I want to list the colors of the person here-->
     {{color.name}}
   </p>
</div>

我无法访问一个人的颜色数组。我该如何实现?

我已经看过这些帖子,但他们的解决方案对我没有帮助:

Angular2 ngFor Iterating over JSON

Angular2 - *ngFor / loop through json object with array

【问题讨论】:

  • person.colors 的颜色。投票结束错字。
  • @JBNizet 抱歉,我在这里的帖子中忘记了这一点,但我的代码中有它,所以这不是问题
  • 不,打开控制台会立即产生错误和解决方案@Pac0
  • 关闭第一段。检查您的控制台是否有错误消息。

标签: arrays json angular ngfor


【解决方案1】:

对于 Angular 6.1+,您可以使用默认管道 keyvalueDo review also):

<ul>
    <li *ngFor="let recipient of map | keyvalue">
        {{recipient.key}} --> {{recipient.value}}
    </li>
</ul>

WORKING DEMO


以前:正如你所说:

Angular2 - *ngFor / loop through json object with array,这帮不了你

你不需要那个,因为你的代码工作正常,请检查

WORKING DEMO

【讨论】:

  • 天哪!毕竟解决方案只是一个管道?伙计,这是我一直在寻找的答案,应该在几周前的工作任务中使用(我使用了一些奇怪的技术来解决它)。非常感谢@Vivek ...当我将来遇到同样的问题时可能会参考这个。
  • 非常感谢 Vivek,你拯救了我的一天 :)
  • 不错的一个 - 对我来说也一样!谢谢
【解决方案2】:

您的代码(您显示的部分)工作正常(请参阅下面链接的 plunker)。

由于您的问题中唯一未显示的是您将 Javascript 对象分配给变量 persons 的方式,因此我敦促您向您展示更多代码/在那里搜索问题。

https://plnkr.co/edit/rj4K2sKHTHsVtdt4OWfC?p=preview

@Component({
  selector: 'my-app',
  template: `
    <div>
      <div *ngFor="let person of persons">
        <p>{{person.name}}</p> <!-- this works fine-->
        <p *ngFor="let color of person.colors"> <!--I want to list the colors of the person here-->
           {{color.name}}
        </p>
      </div>
    </div>
  `,
})
export class App {
  name:string;
  constructor() {

  }

  persons = [
  {
    "name": "Mike",
    "colors": [
      {"name": "blue"},
      {"name": "white"}
    ]
  },

  {
    "name": "Phoebe",
    "colors": [
      {"name": "red"},
      {"name": "yellow"}
    ]
  }
  ];
}

【讨论】:

  • 我正在使用 json-server 来访问我的 json 文件。我可以发布代码,但我认为它会更加混乱,因为它有很多代码,我认为访问 json 文件并不是真正的问题,因为我可以看到这些人的名字,所以这不应该是一个问题。我以为我可能对阵列做错了,但正如我在您的 plunker 中看到的那样,它应该可以正常工作。奇怪的是它在我的代码中不起作用,因为我的代码与您的 plunker 中的代码完全相同。
  • @BlueCat :您可能没有相同的代码,否则不会给出不同的结果。您至少可以向您的服务器显示请求的确切返回值(来自浏览器控制台网络选项卡)吗?以及如何将其分配给可变人员?或者,也许你以某种方式用其他东西覆盖了 persons
  • 我能够修复它。我的代码工作正常,但我的 json-server 有一些问题。我解决了这个问题,现在它终于可以工作了。无论如何感谢您的帮助
猜你喜欢
  • 2018-08-26
  • 2018-06-17
  • 2021-09-08
  • 2017-06-12
  • 1970-01-01
  • 2020-09-23
  • 2020-01-18
  • 2016-07-28
相关资源
最近更新 更多