Angular2 Table Chrome 上的行组件显示在单列中

Angular2 Table Row component on Chrome displays in single column

正在使用的版本:

我有一个分为 3 个部分的页面。页面大纲,一个 table,它有自己的布局,包括行,这些行之一包含一个行组件。 在 IE 中,table 显示正常,在 Chrome 中,组件行中的所有数据都出现在第一列中。

main.html

<form>
     <div>Title Stuff etc.</div>
     <table-component [qlineModel]="QuoteLineModel"></table-component>
     <div>Other stuff</div>
</form>

table.html

<table>
   <thead>
      <tr>
        <th>ColA</th>
        <th>ColB</th>
        <th>Option</th>
     </tr>
   </thead>
   <tbody>
      <row-component *ngFor="let qlines of qlineModel" 
                            [qline]="qlines">
      </row-component>
      <tr>
         <td>Tot A</td>
         <td>Tot B</td>
         <td>Tot Opt</td>
      </tr>
    </tbody>
  </table>

row.html

<tr>
   <td>{{qline.A}}</td>
   <td>{{qline.B}}</td>
   <td>{{qline.C}}</td>
</tr>

IE 给出了我期望的输出

       Title Stuff etc
   ColA |  ColB  | Col C
   100     200     300
   200     300     400
   ___________________
   300    500     700
       Other Stuff

但是,Chrome 给出了我不期望的输出

       Title Stuff etc
   ColA        |  ColB  | Col C
   100 200 300
   200 300 400
   _____       ______________
   300           500     700
       Other Stuff

我可以通过将 table 数据放入一个组件来解决这个问题,但是 a) 对我来说打败了对象 b) 我想潜在地打印 table ,所以理想情况下我想保留照原样。 我尝试了 但一直在获取 NgFor only supports Iterables such as arrays

感谢收到的任何帮助。

您不能在 <tbody> 中包含 <row-component>,因为那不是 <tbody> 的有效子项。

你可以把RowComponent的选择器改成[rowComponent]然后像

一样使用
<tr rowComponent *ngFor="let qlines of qlineModel" 
                        [qline]="qlines">

使用 选择器:'tr[row-component]' in RowComponent 将允许您呈现

<table>
    <thead><!-- headers go here --></thead>
    <tbody>
        <tr row-component *ngFor="let qlines of qlineModel" [qline]="qlines"></tr>
    </tbody>
</table>

这在 Chrome 和 IE 上都能正确呈现。