2015-07-27 5 views
0

У меня есть данные JSON, которые хранятся в массиве (столбец Info), и мне нужно вставить его в ng-сетку. Таким образом, appName, appID и appStatus должны быть столбцами в финальной ng-сетке. Как создать поля для них?Помещение массива из другого массива в ng-сетку

JSON:

[ 
    { 
     "id":75, 
     "firstName":"Charlie", 
     "lastName":"Latter", 
     "Info":[ 
     { 
      "appName":"Yale", 
      "appID":21, 
      "appStatus":"applied" 
     }, 
     { 
      "appName":"NYU", 
      "appID":52, 
      "appStatus":"applied" 
     } 
     ] 
    }, 
    { 
     "id":78, 
     "firstName":"Casey", 
     "lastName":"Jones", 
     "Info":[ 
     { 
      "appName":"Harvard", 
      "appID":63, 
      "appStatus":"applied" 
     }, 
     { 
      "appName":"Princeton", 
      "appID":32, 
      "appStatus":"applied" 
     } 
     ] 
    } 
] 

Сценарий:

$scope.viewCollegeApps = { 
    data: 'collegeApps', 
    columnDefs: [ 
     {field: 'id', displayName: 'ID'}, 
     {field: 'firstName', displayName: 'firstName'}, 
     {field: 'lastName', displayName: 'lastName'}, 
    //Fields for Info arrays// 
    ], 
}; 

ответ

0

массив информации нужно будет выглядеть, как собственный столбец в нг-сетке, если вы повторно карту данных заранее.

Может cellTemplates поможет форматировать информацию соответствующим образом, например:

$scope.viewCollegeApps = { 
    data: 'collegeApps', 
    columnDefs: [ 
     {field: 'id', displayName: 'ID'}, 
     {field: 'firstName', displayName: 'firstName'}, 
     {field: 'lastName', displayName: 'lastName'}, 
     //Define the info column - the whole info array will appear in the Info column 
     {field: 'Info', displayName: 'Info', cellTemplate: '<div ng-repeat="info in row.entity[col.field]">{{info.appName}}, {{info.appID}}</div>' } 
    ], 
}; 

Или вы могли бы сделать обычай rowTemplate для всей строки, которая может быть более подходящим.

https://github.com/angular-ui/ui-grid/wiki/Templating