2016-04-13 5 views
1

У меня есть то, что я считаю правильным синтаксисом доступа для привязки моего элемента управления UI-Grid, я не получаю никаких ошибок или каких-либо данных. Я просто предупреждаю о мутации прототипа.UI-Grid не отображает данные JSON?

Моя структура данных JSON как это:

{ 
    "records": [ 
    { 
     "acctIdInfo": { 
     "acctId": "257905480", 
     "acctCode": "ABC10101102", 
     "acctName": "BIG CORPORATION", 
     "acctRole": [ 
      "C" 
     ] 
     }, 
     "acctNameAddr": { 
     "addressLine": [ 
      "7280 JAMISON ST" 
     ], 
     "cityName": "VANCOUVER", 
     "stateCd": "US-WA", 
     "countryCd": "US", 
     "postalCd": "97979" 
     } 
    } 
    ] 
} 

код в мой контроллер AngularJS связывать это:

var app = angular.module('app', ['ui.grid', 'ngResource']) 

    .factory('jsonDataFactory', function ($resource) { 
    return { 
     custData: $resource('data.json', {}, { 
     query: {method: 'GET', params: {}, isArray: false} 
     }), 

    }; 
    }); 

app.controller('MainCtrl', ['$scope','$resource','jsonDataFactory', function ($scope,$resource, jsonDataFactory) { 
    $scope.gridOptions = { 
    enableRowSelection: true, 
    enableSelectAll: true, 
    selectionRowHeaderWidth: 35 
    }; 

    $scope.gridOptions.columnDefs = [ 
    { name: 'acctIdInfo.acctId' }, 
    { name: 'acctIdInfo.acctCode'}, 
    { name: 'acctIdInfo.acctName'}, 
    { name: 'acctNameAddr.addressLine' } 
    ]; 

    $scope.gridOptions.data = jsonDataFactory.custData.query().records; 
    $scope.CustomerData = []; 
    $scope.CustomerData = jsonDataFactory.custData.query(); 
    console.log($scope.CustomerData); 
    $scope.gridOptions.data = $scope.CustomerData.records; 


}]); 

Вот мой plnk of what I tried -

Я думаю, что я close ...

ответ

1

Подключить данные к ui-grid данным так urce, когда возвращается ответ на вызов ajax. Я предположил, что вы использовали $resource, поэтому вы можете пообещать над ним, чтобы прикрепить функцию обратного вызова.

jsonDataFactory.custData.query().$promise.then(function(response){ 
    $scope.CustomerData = response; 
    console.log($scope.CustomerData); 
    $scope.gridOptions.data = $scope.CustomerData.records; 
}); 
+0

Я пытался просто @Pankaj Parkar, но он говорит мне «Ошибка. JsonDataFactory.custData.query (...), то это не функция» –

+0

@ haakon319 можно добавить 'jsonDataFactory' код, также посмотреть при обновленном ответе –

+0

Обновлено с полным файлом script.js из моего plnk, вы могли видеть plnkr? –

Смежные вопросы