如何将正常的for循环复制到* ngFor

时间:2018-12-19 11:49:26

标签: angular angular6

rating = 4;
for(i=0; i < rating ; i++){ 
//print statement
}

如何使用* ngFor

在角度为6的条件下复制相同的for循环

循环应基于额定值运行。如果为2,则应运行2次。...

3 个答案:

答案 0 :(得分:1)

我认为您正在寻找这种解决方案, 只需使用您的评分长度创建一个空数组

组件

if (comObject != null)
{
      if (System.Runtime.InteropServices.Marshal.IsComObject(comObject))
      {                
          System.Runtime.InteropServices.Marshal.ReleaseComObject(comObject);
      }
      comObject= null;
}

在类似模板中使用

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

答案 1 :(得分:1)

我认为最好的解决方案是使用@pdudits这样的指令,例如in the link。为了改善我的建议

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

答案 2 :(得分:-1)

您的意思是像<div *ngFor="let item of items; let i = index">{{ i }}</div>