0

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

未捕获的类型错误:无法读取未定义的属性“调整大小”

组件.html

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

组件.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
    }
}
4

1 回答 1

2

看来您上面的示例代码是正确的,也许还有更多事情要做?您是否有更完整的示例要分享,以现场演示实际问题?

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

该模板具有:

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

然后控制器有:

export class LaunchesComponent  {
  @ViewChild('datagridRef') datagrid: Datagrid;

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

如果你只有一个 Datagrid,你不需要在 HTML 中添加钩子

export class LaunchesComponent  {
  @ViewChild(Datagrid) datagrid: Datagrid;

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

看起来您的代码正在传递'Datagrid'(字符串)而不是Datagrid(对构造函数的引用)

于 2017-11-15T16:00:51.160 回答