2017-10-16 22 views
0

Erreur: Obtenir « Impossible de lire la propriété 'stats' undefinedLes données ne sont pas affichées dans la grille en utilisant l'interface utilisateur de la grille de kendo qui a matrice enfant angulaire 4

JSON:

this.obj1: Array (5) [0]: data1 id: 1, le nom : AAA, Statistiques: Array (4) [0]: données 2 shortname: '1', valeur: 23, adresse: « 123 Wilson dr ', subHeader: true, Sous-titres: [{....} ]

UI Kendo:

<kendo-grid [data]="obj1" [scrollable]="'scrollable'" [style.height.px]="400"> 
    <ng-template kendoGridNoRecordsTemplate> 
    <b>No statistics found!</b> 
    </ng-template> 
    <ng-template ngFor [ngForOf]="column.stats" let-column> 
    <kendo-grid-column title="{{column.shortname}}" [width]="90" *ngIf="!column.subHeader; else elseBlock"> 
     <ng-template kendoGridCellTemplate> 
     {{column.value}} 
     </ng-template> 
    </kendo-grid-column> 
    <ng-template #elseBlock> 
     <kendo-grid-column-group title="{{column.shortname}}" [locked]="false" [width]="120"> 
     <ng-template ngFor [ngForOf]="column.subHeaders" let-dataItem let-column> 
      <kendo-grid-column title="{{column.subHeaderLbl}}" [width]="90"> 
      <ng-template kendoGridCellTemplate let-dataItem> 
       {{column.statValue}} 
      </ng-template> 
      </kendo-grid-column> 
     </ng-template> 
     </kendo-grid-column-group> 
    </ng-template> 
    </ng-template> 
</kendo-grid>    

Répondre

0

Modifier cette ligne

<ng-template ngFor [ngForOf]="column.stats" let-column> 

à

<ng-template ngFor [ngForOf]="column?.stats" let-column> 

Vous essayez de montrer les données avant son disponibles, vous pouvez utiliser opérateur en toute sécurité? pour cela.

+0

Merci Vivek, capable d'afficher les données dans la grille, mais montrant "[objet, objet]" au lieu de montrer des données acutales pour ces tableaux enfants –

+0

Cest parce que vous ne pointez pas les données exactes, les données que vous essayez de montrer est encore json, cela devrait être chaîne, et oui, allez-vous s'il vous plaît upvote et accepter la réponse? –