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

问题描述 投票:2回答:2

使用中的版本:

  • Angular 2.0.1
  • angular-cli 1.0.0-beta.17

我有一个分为3个组件的页面。页面大纲,一个表格,它有自己的布局,包括行,其中一行包含行组件。在IE中,表格显示正常,在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

我可以通过将表数据放入一个组件来解决它,但a)为我打败对象b)我想要打印表格,所以理想情况下要保持原样。我尝试了Angular2 table rows as component但不断获得NgFor只支持像数组这样的Iterables

任何帮助感激不尽。

google-chrome internet-explorer angular angular2-components
2个回答
0
投票

你不能在<row-component>里面有一个<tbody>,因为那不是<tbody>的有效孩子。

您可以将RowComponent的选择器更改为[rowComponent],然后使用它

<tr rowComponent *ngFor="let qlines of qlineModel" 
                        [qline]="qlines">

0
投票

使用选择器:RowComponent中的'tr [row-component]'允许你渲染

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

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

© www.soinside.com 2019 - 2024. All rights reserved.