这可能更像是一个有角度的问题,但我在加载数据(并动态显示/隐藏列)后尝试调整清晰度数据网格,但我一直收到错误
未捕获的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
}
}
答案 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'
(对构造函数的引用)