Angular 2 ngx-Datatable celltemplate

时间:2017-01-17 14:41:21

标签: angular typescript

我正在尝试在ngx-Datatable(https://github.com/swimlane/ngx-datatable)中实现cellTemplates,但无法弄清楚它为什么不起作用。

首先我的观点

c100

我有这样的模板类。

<ngx-datatable [rows]="skifte?.utsade" [columnMode]="flex" [selectionType]="'single'" [columns]="columns" (select)='edit($event)'></ngx-datatable>

并试着像这样使用它。但是那个细胞的风格没有变化。

import { Component, TemplateRef, ViewChild } from '@angular/core';
@Component({
moduleId: module.id,
selector:'',
template:"
<template #checkbox let-row="row" let-value="value" let-i="index">
    <md-checkbox checked="value === 'true'"></md-checkbox> 
</template>"
})
export class CellTemplates{

@ViewChild('checkbox') public checkbox: TemplateRef<any>;

constructor(){

 }    
}

1 个答案:

答案 0 :(得分:4)

首先关闭ngx-datatable

  

checkboxable:boolean

     

指示列是否应显示复选框组件   选择。仅在选择模式为复选框时适用。

因此您可以告诉它您的列应该是复选框。 第二, 如果您确实需要一个带有conponent的自定义模板,则需要创建一个有效的组件,然后将其包含在要在单元格中使用的模板中:

<template #chkBxTmpl let-row="row" let-value="value" let-i="index">
  <checkbox-component [state]="value"></checkbox-component>
</template>

并在组件中:

@ViewChild('chkBxTmpl') chkBxTmpl: TemplateRef:<any>; 
    ....
   this.columns = [
       ...
      {
        cellTemplate: this.chkBxTmpl, 
        prop: 'checked',
        name: 'checked',
        width: 100
      }
    ....
   ];