2017-01-24 27 views
1

你好,我有問題顯示數據在kendo ui grid。它工作正常,當我直接在應用程序啓動加載模塊,但是當我試圖通過延遲加載加載它,我得到這個錯誤:如果我從我的HTML刪除劍道電網延遲加載劍道網格的問題

Cannot set property 'stack' of undefined

然後它加載的其餘部分該頁面很好,但與網格它總是產生上述錯誤。

我假設問題是因爲網格本身在加載時未識別,但我不知道在哪裏或如何修復它......另外,如果需要其他一些代碼片段,我將在以後發佈它們

HTML方含網格:

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

網格模塊:

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

網格部件:

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

    } 

主要應用模塊:

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

只是提醒的問題,只有當我切換到延遲加載我的模塊時,如果我加載它在應用程序啓動它的工作原理。

回答

3

我發現,我在ngmodule導入數組中缺少我的GridModule。

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

我不知道爲什麼錯誤消息系統是如此糟糕的角或者也許我做錯了什麼,我真的不知道了

編輯:我發現,爲什麼我總是理由得到一個普遍的錯誤,它是zone.js依賴項:在我升級到最新版本(0.7.6)後,我得到了「正常的錯誤信息,也許它會幫助某人。」