如何从typescript引用清晰度datagrid

时间:2017-11-15 15:40:53

标签: angular vmware-clarity

这可能更像是一个有角度的问题,但我在加载数据(并动态显示/隐藏列)后尝试调整清晰度数据网格,但我一直收到错误

  

未捕获的TypeError:无法读取属性'调整大小'未定义的

component.html

<clr-datagrid #contactsGrid>
[...]
</clr-datagrid>

component.ts

import { Component, OnInit, ViewChild } from '@angular/core';
import { Datagrid } from "clarity-angular";

export class GridComponent implements OnInit {
    @ViewChild('contactsGrid') datagrid: Datagrid;
    //@ViewChild('Datagrid') datagrid: Datagrid; //This doesn't work either

    constructor( ) { }

    ngOnInit() {
        [...]
        this.datagrid.resize(); //this.datagrid is undefined
    }
}

1 个答案:

答案 0 :(得分:2)

看来你上面的示例代码是正确的,也许会有更多的事情发生?您是否有更完整的示例可以分享实际问题?

您可以在此处看到获取数据网格参考的演示。 https://stackblitz.com/edit/clarity-datagrid-brfwx9?file=app/launches/launches.component.ts

模板有:

java -jar [nameApplication].jar

然后控制器有:

<clr-datagrid [(clrDgSelected)]="selected" #datagridRef>

如果您只有一个Datagrid,则无需在HTML

中添加钩子
export class LaunchesComponent  {
  @ViewChild('datagridRef') datagrid: Datagrid;

  ngOnInit() {
    console.log(this.datagrid); // Defined
  }

看起来您的代码正在传递export class LaunchesComponent { @ViewChild(Datagrid) datagrid: Datagrid; ngOnInit() { console.log(this.datagrid); // Defined } (字符串)而不是'Datagrid'(对构造函数的引用)