繁体   English   中英

Angular 中的 ngFor 制作 5 个 div 和 5 个 ul——而不是内部项目

[英]ngFor in Angular making 5 divs and 5 uls -- instead of inside items

问题是 ngFor 及其内部生成的循环项的惊人行为。

我正在制作一个简单的例子来引用 Angular4/5/6 中的 *ngFor。 问题是我期望 1 个 div 包含 5 个段落。 我很惊讶地看到我得到了 5 个 div,每个 div 包含 1 个段落。 这是为什么以及如何解决这个问题? 我很惊讶ul-li 物品也发生了同样的事情!!! - 奇怪的。

abc.component.html

 <div *ngFor="let x of students">
   <p>{{x.name}}, {{x.age}}, {{x.country}}, {{x.gender}}</p>
 </div>

abc.component.ts

  students = [
    {name: "Jack", age: 29, gender:"male", country: "USA"},
    {name: "Ronald", age: 33, gender: "male", country: "UK"},
    {name: "Lisa", age: 19, gender: "female", country: "UK"},
    {name: "Donald", age: 43, gender: "male", country: "Austrailia"},
    {name: "Simera", age: 23, gender: "female", country: "Italy"}
  ];

abc.component.css

div{border:1px solid black;}

在此处输入图片说明

即使对于 ul-li(我得到 ul 生成 5 次,每个包含 1 个 li 项目)

<ul *ngFor="let x of students">
  <li>{{x.name}}, {{x.age}}</li>
</ul>

在此处输入图片说明

将你的ngFor放在<p>标签而不是<div> ,这将在一个<div>创建 5 个段落。如下所示:

<div>
   <p *ngFor="let x of students">{{x.name}}, {{x.age}}, {{x.country}}, {{x.gender}}</p>
 </div>

您需要将*ngFor放在段落标签内

<div>
   <p *ngFor="let x of students">
      {{x.name + ', ' + x.age + ', '+ x.country + ', '+ x.gender}}
   </p>
</div>

请仔细查看 2 段代码:

//1

 <div *ngFor="let x of students">
   <p>{{x.name}}, {{x.age}}, {{x.country}}, {{x.gender}}</p>
 </div>

//2

<ul ngFor="let x of students>
  <li>{{x.name}}, {{x.age}}</li>
</ul>

在 1 中:您写道:*ngFor="..."

在 1: 你写道: ngFor="..." 你必须重写为: *ngFor="..."

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM