2017-01-24 2 views
1

Hallo, ich habe Probleme bei der Anzeige von Daten in einem kendo ui grid. Es funktioniert gut, wenn ich das Modul direkt bei Start der Anwendung geladen werden, aber wenn ich versuche es über verzögertes Laden i diesen Fehler zu laden:Probleme mit einem faulen Laden Kendo-Gitter

Cannot set property 'stack' of undefined

Wenn ich das Kendo Gitter aus meinem html entferne dann lädt er den Rest die Seite fein, aber mit dem Raster erzeugt es immer den obigen Fehler.

Ich gehe davon aus, dass das Problem ist, weil der Gürtel selbst bei der Ladezeit nicht identifiziert ist, aber ich weiß nicht wo oder wie es zu beheben ... Auch wenn einige andere Code-Schnipsel erforderlich sind werde ich sie später auf

HTML containg das Raster:

<kendo-grid [data]="gridData" 
     [pageSize]="displaySize" 
     [skip]="currentPage" 
     [pageable]="true" 
     [height]="200" 
     [sort]="sortArray" 
     [sortable]="{ mode: 'multiple' }"  
     (pageChange)="pageChange($event)" 
     (sortChange)="sortChange($event)"> 
     <kendo-grid-column field="unit" title="Unit" width="100"> 
     </kendo-grid-column> 
     <kendo-grid-column field="startingTime" title="Start Time" width="200"> 
     </kendo-grid-column> 
     <kendo-grid-column field="endTime" title="End Time" width="200"> 
     </kendo-grid-column> 
     <kendo-grid-column field="coilId" title="Id" width="200"> 
     </kendo-grid-column> 
     <kendo-grid-column field="thicknes" title="Thicknes" width="200"> 
     </kendo-grid-column> 

    </kendo-grid> 

Grid-Modul:

import { CommonModule }  from '@angular/common'; 
import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 
import { GridModule } from '@progress/kendo-angular-grid'; 

import {LoadCoil} from "./dataLoadService/loadCoil.service"; 
import {GridComponent} from "./grid.component"; 
import {RouterModule} from "@angular/router"; 

export const routerConfig = [{ 
     path: '', 
     component: GridComponent 
    }]; 

@NgModule({ 
    declarations: [ 
    GridComponent 
    ], 
    imports: [ 
    CommonModule, 
    FormsModule, 
    HttpModule, 
    RouterModule.forChild(routerConfig) 
    ], 
    exports : [GridComponent], 
    providers: [LoadCoil], 
    bootstrap: [] 
}) 
export default class AngGridModule { } 

Grid-Komponente:

public gridData: GridDataResult ; 
    constructor(private _loadCoil : LoadCoil){ 

    } 

    ngOnInit() : void{ 

     alert("onInit"); 
     this._loadCoil.getAllCoils().subscribe(coils =>{ this.coils = coils; 
      this.gridData = { 
       data: this.coils.slice(this.currentPage, this.currentPage + this.displaySize), 
       total: this.coils.length}; 

       alert(this.coils.length); 
      for(let i = 0; i < this.coils.length; i++){ 
       let isFound = false; 
       for (let j = 0; j < this.dropDownArray.length; j++){ 
        if (this.dropDownArray[j] == this.coils[i].unit){ 
         isFound = true; 
         break; 
        } 
       } 

       if(!isFound){ 
        this.dropDownArray.push(this.coils[i].unit); 
       } 
      } 
     }); 

    } 

Haupt App-Modul:

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 
import { AppComponent } from './app.component'; 
import {RouterModule} from "@angular/router"; 
import { GridModule } from '@progress/kendo-angular-grid'; 

export const routeConfig = [{ 
     path: 'grid', 
     loadChildren: './angGrid.module' 
    }]; 

@NgModule({ 
    declarations: [ 
    AppComponent, 

    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule, 
    RouterModule, RouterModule.forRoot(routeConfig) 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

einfach das Problem zu erinnern, tritt nur, wenn ich zu faul Laden für mein Modul eingeschaltet, wenn ich es bei App laden starte es funktioniert.

Antwort

3

Ich fand heraus, ich vermisste meine GridModule in der ngmodule Import-Array.

@NgModule({ 
    declarations: [ 
    GridComponent 
    ], 
    imports: [ 
    CommonModule, 
    FormsModule, 
    HttpModule, 
    RouterModule.forChild(routerConfig), 
    ***GridModule*** 
    ], 
    exports : [GridComponent], 
    providers: [LoadCoil], 
    bootstrap: [] 
}) 

Ich habe keine Ahnung, warum der Fehler Messaging-System so schlecht in Winkel ist oder vielleicht etwas, was ich falsch mache ich weiß wirklich nicht mehr

EDIT: ich den Grund gefunden, warum ich immer war einen allgemeinen Fehler bekommen und es war die zone.js Abhängigkeit: Nachdem ich auf die neueste Version (0.7.6) aktualisiert habe, habe ich "normale Fehlermeldungen bekommen. Vielleicht hilft es jemandem.