ngTemplateOutlet似乎不适用于mat-cell

时间:2018-07-07 10:07:52

标签: angular angular-material2 angular-material-6

我正在尝试将内容投影到扩大的行中,但到目前为止没有成功。 相同的方法在其他地方都可以使用,但不确定为什么不能与mat-table

一起使用
<!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->
  <ng-container matColumnDef="expandedDetail">
    <td mat-cell *matCellDef="let element" [attr.colspan]="columnsToDisplay.length">
      <div class="example-element-detail"
           [@detailExpand]="element == expandedElement ? 'expanded' : 'collapsed'">
        <div class="example-element-description">
          {{element.description}}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
          <span class="example-element-description-attribution"> -- Wikipedia 
<ng-container [ngTemplateOutlet]='rowDetail'></ng-container></span>
        </div>
      </div>
    </td>
  </ng-container>

在我尝试过的用法中

<demo-table 
[rowDetail]="rowDetailContent "
></demo-table>

<ng-template #rowDetailContent >
This is a passed template
</ng-template>

还有这个

<demo-table 
[rowDetail]="details "
></demo-table>

TS

@ViewChild('rowDetailContent') details :TemplateRef<any>;

他们似乎都没有解决。

这里是Stackblitz

1 个答案:

答案 0 :(得分:1)

查看您的AppModule

entryComponents: [TableExpandableRowsExample,TableDemoComponent,RowDetailContent],
declarations: [TableDemoComponent,TableExpandableRowsExample,RowDetailContent],
bootstrap: [TableExpandableRowsExample,TableDemoComponent,RowDetailContent],

我怀疑您不知道这些选择的目的是什么。

尝试从TableDemoComponent选项中删除RowDetailContentbootstrap,因此应该为:

bootstrap: [TableExpandableRowsExample]

Forked Stackblitz