Angular 是否支持 *ngWhile 微语法?

Does Angular support an *ngWhile microsyntax?

提问人:Evan Carroll 提问时间:9/9/2017 最后编辑:Evan Carroll 更新时间:12/12/2018 访问量:6352

问:

我将如何编写一个 while 循环,做相当于

while (x--) {
  <li> foo {{x}} </li>
}

具有类似于 but for 循环的“微语法”,而不是在对象上循环递增器或递减器。因此,如果组件有 .我想要*ngForx = 5

<li> foo 5 </li>
<li> foo 4 </li>
<li> foo 3 </li>
<li> foo 2 </li>
<li> foo 1 </li>

或类似的东西。Template Toolkit 使用 WHILE 执行此操作。我正在寻找这种功能。翡翠/哈巴狗也是如此。

Angular 循环模板 while-loop

评论

1赞 Aniruddha Das 9/9/2017
*ngFor 用于在模板中循环,如果您尚未探索
0赞 Evan Carroll 9/9/2017
@AniruddhaDas对,我想在一段时间内循环模板。
0赞 Aniruddha Das 9/9/2017
*ngFor不可能吗?
0赞 Aniruddha Das 9/9/2017
像 <li *ngFor=“let foo of foos”>{{foo}}<li>
0赞 Evan Carroll 9/9/2017
@AniruddhaDas不是afaik。如果是的话,请随时告诉我如何。据我所知,ngFor 在迭代器上循环。

答:

0赞 tylerwgrass 9/9/2017 #1

如果您想计数,*ngFor 有一个可用的索引值。不过,我不知道有一种方法可以倒计时。

<li *ngFor="let foo of foos; let i = index">
 foo {{i}}
</li>

输出:

foo 0
foo 1
foo 2
foo 3
foo 4

评论

0赞 Evan Carroll 9/9/2017
你能展示一下你正在设置的内容吗?那是foos=5吗?foos
0赞 tylerwgrass 9/9/2017
这是您选择的集合。如果您只想通过多次递增来做到这一点,不幸的是,没有简单的方法可以做到这一点。请参阅此问题。
0赞 Evan Carroll 9/9/2017
好吧,我真的在寻找 ngWhile 之类的东西,而不是强迫它与 ngFor =(
0赞 tylerwgrass 9/9/2017
ngFor 是唯一的模板循环类型。所以你可能只是被困在使用它。也许如果您提供有关您的具体问题的更多详细信息,有人可以为您的情况提供更好的方法?
0赞 Evan Carroll 9/9/2017
我正在尝试从计数器中获取元素列表。我觉得我可以在 1950 年代用 perl 做到这一点
0赞 bjolfr 12/12/2018 #2

它遍历一个数组,将您想要的任何内容放入数组的函数中:

<li *ngFor="let foo of foos.slice(0, 5)">
 foo {{i}}
</li>