2017-11-15 2 views
0

Dies könnte mehr eine eckige Frage sein, aber ich versuche, die Klarheit DataGrid nach dem Laden von Daten (und dynamisch zeigen/ausblenden Spalten), aber ich bekomme immer den FehlerSo erhalten Sie einen Verweis auf Klarheit Datagrid von Typoskript

Uncaught TypeError: Cannot read property 'resize' of undefined

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 
    } 
} 

Antwort

2

Es scheint, Ihr Beispielcode ist korrekt, vielleicht ist mehr los? Haben Sie ein vollständigeres Beispiel zum Teilen, das das aktuelle Problem live zeigt?

Hier können Sie eine Demo sehen, um die Referenz für ein Datagrid zu erhalten. https://stackblitz.com/edit/clarity-datagrid-brfwx9?file=app/launches/launches.component.ts

Die Vorlage hat:

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

Dann wird der Controller hat:

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

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

Wenn Sie nur ein Datagrid haben, brauchen Sie nicht einen Haken in der HTML-

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

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

Es sieht so aus, als ob Ihr Code 'Datagrid' (ein String) übergeben wurde Anzeige von Datagrid (eine Referenz auf den Konstruktor)

+0

Es war ein * ngIf auf meinem Datagrid, das scheint das Problem gewesen zu sein. Vielen Dank. – Jake

Verwandte Themen