Отображение данных в угловой сетке пользовательского интерфейса

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

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

        getData();

        $scope.myData = [];

        $scope.gridOptions.data = []

        $scope.gridOptions.data = $scope.myData; 

        function getData() {
            $http.get('/load/').success(function (data) {
                data.forEach( function( row, index ) {
                    $scope.myData.push(data);
                });
                $scope.gridOptions.data = data;
                console.log('data from api', data);
            })
        };

и я получил пустую сетку. введите здесь описание изображения

Данные отображаются в консоли: введите здесь описание изображения

Я также пытался разобрать данные var jsonObj = JSON.parse(data);, но получил ошибку Неожиданный токен o в Object.parse (собственный)


person corry    schedule 12.02.2016    source источник


Ответы (4)


Используйте эту функцию, чтобы поместить ваши данные в массив. Проверьте свои данные в консоли, углубитесь в свои данные. (нажмите на стрелку) Мои данные находятся в .doc, ваши могут быть в другом атрибуте. измените «items[i].doc» на правильный атрибут для ваших данных.

// pass data.rows to function items params
// the type is to filter 
function fncArray(items,type) {
    var filtered = [];
    for(var i=0; i < items.length; i++)  {
        if ( items[i].doc.type = type){
            filtered.push(items[i].doc);
        }
    }
    // console.log(filtered);
   return filtered;
}

это использовать без фильтрации

// pass data.rows to function items params 
function fncArray(items) {
    var newData= [];
    for(var i=0; i < items.length; i++)  {
            newData.push(items[i].doc);
    }
   return newData;
}
person Morgan Hayes    schedule 23.03.2016

вы можете написать $scope.$apply(), чтобы вызвать изменения в контроллере

person oto lolua    schedule 12.02.2016
comment
Я получил сообщение об ошибке: [$rootScope:inprog] $digest уже выполняется - person corry; 12.02.2016
comment
вы можете проверить, выполняется ли фаза if(!$scope.$$phase) { $scope.$apply()} - person oto lolua; 12.02.2016

Возвращаемые данные должны быть ["ключ":[объект, объект, объект, объект]] в этой форме. 1) преобразовать эти данные с помощью var jsonObj = JSON.parse(data); 2) успешно использовать это выражение !$scope.$$phase?$scope.$apply():null;

person Ananda Naphade    schedule 12.02.2016
comment
Я пробовал это, и снова появляется та же ошибка: Неожиданный токен o в Object.parse (собственный) - person corry; 12.02.2016

Извините, ребята, моя ошибка здесь. Нет необходимости в разборе. Я определил неправильные столбцы Defs здесь, в контроллере :facepalm:

person corry    schedule 12.02.2016