Angular 如何从我的组件内容将columnDefinitions添加到md表中
我从Angular 2开始,没有发现这样的东西 我在标题中说,我有一个组件,在内容中设置了列定义,如下所示:Angular 如何从我的组件内容将columnDefinitions添加到md表中,angular,typescript,angular-material2,Angular,Typescript,Angular Material2,我从Angular 2开始,没有发现这样的东西 我在标题中说,我有一个组件,在内容中设置了列定义,如下所示: <tabela-com-consulta [dataSource]="ds"> <ng-container cdkColumnDef="id"> <md-header-cell *cdkHeaderCellDef md-sort-header >ID</md-header-c
<tabela-com-consulta [dataSource]="ds">
<ng-container cdkColumnDef="id">
<md-header-cell *cdkHeaderCellDef md-sort-header >ID</md-header-cell>
<md-cell *cdkCellDef="let row">{{row.id}}</md-cell>
</ng-container>
<ng-container cdkColumnDef="nome">
<md-header-cell *cdkHeaderCellDef md-sort-header>Name</md-header-cell>
<md-cell *cdkCellDef="let row">{{row.name}}</md-cell>
</ng-container>
</tabela-com-consulta>
身份证件
{{row.id}}
名称
{{row.name}
现在,这是我的组件模板:
<div id="ls" fxFlexFill>
<md-table [dataSource]="dataSource" mdSort>
<!-- Add this for each ContentChildren of my component
<ng-container cdkColumnDef="id">
<md-header-cell *cdkHeaderCellDef md-sort-header>ID</md-header-cell>
<md-cell *cdkCellDef="let row">{{row.id}}</md-cell>
</ng-container>
-->
<md-header-row *cdkHeaderRowDef="displayedColumns"></md-header-row>
<md-row *cdkRowDef="let row; columns: displayedColumns;"></md-row>
</md-table>
</div>
以及组件ts代码:
@Component({
selector: 'tabela-com-consulta',
templateUrl: 'tabela_com_consulta.component.html',
styleUrls: ['tabela_com_consulta.component.css']
})
export class TabelaComConsultaComponent<T> implements OnInit, OnDestroy, AfterViewInit {
[...]
@ContentChildren(CdkColumnDef) columnDefinitions: QueryList<CdkColumnDef>;
ngAfterViewInit() {
}
}
@组件({
选择器:“tabela com consulta”,
templateUrl:'tabela_com_consulta.component.html',
样式URL:['tabela\u com\u consulta.component.css']
})
导出类TabelaComConsultaComponent实现OnInit、OnDestroy和AfterViewInit{
[...]
@ContentChildren(CdkColumnDef)列定义:QueryList;
ngAfterViewInit(){
}
}
我不知道如何使用从@ContentChildren获取的columnDefinitions来放入md表内容。我不知道我是否也做对了。我的目标是在组件的内容中包含列定义,并将其放入md表中。怎么做?试试这个。我不知道它是否有效,但值得一试
<md-table [dataSource]="dataSource" mdSort>
<!-- This will selectively pass the content of 'tabela-com-consulta' -->
<ng-content select="[cdkColumnDef]"></ng-content>
<md-header-row *cdkHeaderRowDef="displayedColumns"></md-header-row>
<md-row *cdkRowDef="let row; columns: displayedColumns;"></md-row>
</md-table>
不幸的是,它没有工作,仍然从md表中获取错误:错误:cdk表:找不到id为“id”的列。在getTableUnknownColumnError()上
你确定这不是打字错误吗?对于每个需要这样东西的人,我找到了另一种方法