2017-07-25 1 views
3

私はAngular 2で始まり、このようなものは見つかりませんでした。私のコンポーネントの内容からmd-tableにcolumnDefinitionsを追加するには

<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> 

とコンポーネント:

 <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> 

は今、これは私のコンポーネントテンプレートです:私はタイトルで、私はこのように、コンテンツに設定された列定義を持つコンポーネントをしたと述べた方法

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() { 

    } 
} 

@ContentChildから取得したcolumnDefinitionsの使用方法がわかりませんmd-tableの内容を入力します。そして、私はこのことも正しくやっているのかどうかわかりません。私の目標は、コンポーネントの内容に列定義を持たせ、それをmdテーブルに取り込むことです。どうやってするか?

+0

'これは入力ミスではありませんか? – Jebedo

+0

このようなものが必要な人には、別の方法[ここ](https://github.com/angular/material2/tree/master/src/demo-app/table)を見つけました –

答えて

0

これを試してください。私はそれがうまくいくかどうか分からないが、ショットに値する。

<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> 
+0

残念なことに、まだmd-tableからエラーが発生しています。エラー:cdk-table:idが "id"の列を見つけることができませんでした。 のgetTableUnknownColumnError(http:// localhost:52686/dist/vendor.js?v = 229_tiizAgVyplzgNHmvuD9nw-v9A0XTy8pogI_TkFc:40683:12).. .. –

関連する問題