Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有棱角的,无可数的。需要建立Iterable_Javascript_Angular_Loops_Iterator_Ngfor - Fatal编程技术网

Javascript 有棱角的,无可数的。需要建立Iterable

Javascript 有棱角的,无可数的。需要建立Iterable,javascript,angular,loops,iterator,ngfor,Javascript,Angular,Loops,Iterator,Ngfor,角度为2+的*ngFor需要通过创建n个元素的数组来构建iterable(行): <table> <tr *ngFor="let row of rows"> </tr> </table> 有一种迭代数字的方法吗??。 提前感谢。我将使用以下语法将索引值设置为HTML元素的属性: <table> <tr *ngFor="let item of items; let i = index" [attr.data-in

角度为2+的*ngFor需要通过创建n个元素的数组来构建iterable(行):

<table>
  <tr *ngFor="let row of rows">

  </tr>
</table>

有一种迭代数字的方法吗??。
提前感谢。

我将使用以下语法将索引值设置为HTML元素的属性:

<table>
  <tr *ngFor="let item of items; let i = index" [attr.data-index]="i"> // data-index attribute will be assigned index 

  </tr>
</table>

//数据索引属性将被指定为索引

您可以使用组件类的方法生成行索引数组:

public generateRowIndexes(count: number): Array<number> {
  let indexes = [];
  for (let i = 0; i < count; i++) {
    this.indexes.push(i);
  }
  return indexes;
}
public generateRowIndexes(count:number):数组{
让索引=[];
for(设i=0;i
并在模板中调用它:

<table>
  <tr *ngFor="let rowIndex of generateRowIndexes(5)">
    ...
  </tr>
</table>

...

可以在中测试代码。

在哪里不存在?您需要行的索引吗?我假设数组.from(Array(count).keys());将比以下命令更快:createRows(num:number){this.rows=[];for(var i=0;iArray.from表达式,因为它通常被认为是创建索引数组的最简单(或最短)方法,但显然,如果性能是一个问题,它并不是最好的方法。我注意到,对于10000条记录,这两种方法在我的机器上都需要不到1ms的时间。为什么访问函数GeneratorWindexes在模板上会多次触发该函数。这是一个角度问题吗??。使用console.logIt进行测试可能是由角度变化检测机制引起的。您可以尝试使用行计数作为
@Input()
参数的
ChangeDetectionStrategy.OnPush
(请参阅)。有了它,应该只在需要时调用更改检测。不过,这种优化有一些缺陷(请参阅)。因此,您可能更愿意保留标准策略。