2016-07-30 71 views
0

我的数据看起来像这样angular2:嵌套循环在模板中不排放HTML

this.data = [[1,2,3], [4,5,6]]; 

,我想就把每个值1..6在表中的<td>标签。

我的问题是,外部循环需要在某种标签内,但我不想破坏HTML结构。我目前的解决方案是:

<table> 
    <tr> 
     <dummy *ngFor="let a of data;"> 
      <td *ngFor="let b of a;"> 
       {{b}} 
      <td> 
     <dummy> 
    </tr> 
</table> 

没有与<dummy>相关组件。

这可行,但我怀疑这是做到这一点的预期方式。任何替代品?

回答

0

如果你没有使用多维数组作为表中的任何东西,那么对于这个循环,你可以压平数组,并在扁平数组上使用一个ngFor

要扁平化,你可以这样做数组:

this.flatData = [].concat.apply([], this.data); 

然后,您可以使用您的flatData财产在html:

<table> 
    <tr> 
     <td *ngFor="let item of flatData"> 
      {{item}} 
     <td> 
    </tr> 
</table> 
+0

这是我正在考虑的选择。但是,上面的代码只能隔离我的问题,而且这种方法在我的应用程序中不会很实用。不过谢谢! – hannes0x21