Как получить ссылку на ясность сетки данных из машинописи
Это может быть более сложным вопросом, но я пытаюсь изменить размер сетки данных ясности после загрузки данных (и динамического отображения / скрытия столбцов), но я продолжаю получать сообщение об ошибке
Uncaught TypeError: Невозможно прочитать свойство 'resize' из неопределенного
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 ответ
Похоже, ваш пример кода выше верен, возможно, что-то еще происходит? У вас есть более полный пример, который демонстрирует актуальную проблему?
Здесь вы можете увидеть демонстрацию получения ссылки на сетку данных. 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
(ссылка на конструктор)