【问题标题】:How to show 1 element in ngFor in angular2?如何在 angular2 中显示 ngFor 中的 1 个元素?
【发布时间】:2017-07-16 11:13:14
【问题描述】:

我有一个简单的 ngFor 循环遍历数组。但是,我添加了一个条件,即当索引为 < 5 时,请继续添加标签。之后,我只想添加一个额外的标签,该标签将用于下拉列表来查看其余标签。但它不起作用。

<li *ngFor="let tag of module.Tags; let i = index">
  <a *ngIf="i<5" href="#" class="span-tag tag">{{ tag }}</a>
  <div *ngIf="module.Tags.length > 5 && i == 6">DropDown Button</div>
</li>

这里的特点是我不想向用户显示无限数量的标签,我想将它限制为只有 5 个标签,并在 5 个标签之后有一个按钮,用于显示下拉菜单剩余的标签。

这可以在angular2中做到吗?

如果有,请赐教。

【问题讨论】:

  • 我不明白问题出在哪里。您只想要前 5 个Tags&lt;div&gt;DropDown Button&lt;/div&gt;
  • 是的@GünterZöchbauer

标签: arrays angular tags angular-ng-if ngfor


【解决方案1】:
<li *ngFor="let tag of module.Tags | slice:0:5; let last=last">
  <a href="#" class="span-tag tag">{{ tag }}</a>
  <div *ngIf="last">DropDown Button</div>
</li>

https://angular.io/docs/ts/latest/api/common/index/SlicePipe-pipe.html

要添加除&lt;div&gt;DropDown Button&lt;/div&gt; 之外的所有内容,您可以使用第 5 项后添加:

show = 5;

<li *ngFor="let tag of module.Tags|slice:0:show let i=index">
  <a href="#" class="span-tag tag">{{ tag }}</a>
  <div *ngIf="i==4 && show == 5" (click)="show = module.Tags.length">DropDown Button</div>
</li>

【讨论】:

  • 但这只是显示这个:&lt;div *ngIf="last"&gt;DropDown Button&lt;/div&gt;,而不是前 5 个标签
  • 抱歉,忘记删除*ngIf="i &lt;5"
  • 啊,我明白了。这是否允许我将其余标签放在下拉列表中?表示前 5 个标签之后的其余标签?
  • 看来我当时误解了你的问题和你对我的评论的“是”。如果您只想在第 5 项之后添加 &lt;div&gt;,这很容易。我会更新我的答案。
  • 所以在您更新的答案中,发生的事情是它查看前 6 个标签,然后是一个下拉框,然后是其余标签。我想看的是前5个标签,后面是一个按钮,当用户点击时,其余的显示,否则隐藏
猜你喜欢
  • 1970-01-01
  • 2017-07-16
  • 1970-01-01
  • 2016-11-05
  • 2017-08-17
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
相关资源
最近更新 更多