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 { }
只是提醒的問題,只有當我切換到延遲加載我的模塊時,如果我加載它在應用程序啓動它的工作原理。