Как скопировать нормальный цикл для * ngFor - PullRequest
0 голосов
/ 19 декабря 2018
rating = 4;
for(i=0; i < rating ; i++){ 
//print statement
}

как повторить то же самое для цикла с условиями в угловых 6, используя * ngFor

цикл должен работать на основе значения рейтинга .. если он равен 2, он должен запускаться 2 раза ....

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Я думаю, что вы ищете такое решение, просто создайте один пустой массив с вашей оценочной длиной

компонент

let items = [];
for(i=0; i < rating ; i++){ 
 items.push(i);
}

Используйте в шаблоне как

<div *ngFor="let item of items">
</div>
0 голосов
/ 19 декабря 2018

Лучшее решение, я думаю, это использование директивы, например, @pdudits, скажем в ссылке .Чтобы улучшить директиву, я использую

import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';

@Directive({
  selector: '[repeat]'
})
export class RepeatDirective {

  constructor(
    private templateRef: TemplateRef<any>,
    private viewContainer: ViewContainerRef) { }

  @Input() set repeat(times: number) {
    let count=this.viewContainer.length;
    for (let i=this.viewContainer.length;i>times;i--)
      this.viewContainer.remove(i-1);

    for (let i = count ; i < times ; i++) 
      this.viewContainer.createEmbeddedView(this.templateRef,
      {
        $implicit:i
      });

  }
}

. Вы можете использовать как

<div *repeat="40;let index">{{index}}</div>

См. stackblitz

0 голосов
/ 19 декабря 2018

Вы имеете в виду, как <div *ngFor="let item of items; let i = index">{{ i }}</div>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...