2014-06-05 4 views
0

У меня есть API возвращение следующего простого JSON массив:Как обрабатывать массив с помощью AngularJS?

[ 
    "efd98ad-first_key", 
    "100eb0a-second_key" 
] 

Я пытаюсь сделать это в виде таблицы с Угловым:

<div name="listkeys" class="container"> 
    <div class="starter-template"> 
    <div ng-bind-html="message"></div> 
    <table class="table table-striped table-bordered table-condensed sortable" ng-init="getKeys()"> 
     <tr> 
     <th>bucket</th> 
     </tr> 
     <tr ng-repeat="bucket in buckets"> 
     <td>{{bucket}}</td> 
     </tr> 
    </table> 
    </div> 
</div> 

JS:

var app = angular.module('flipDaSwitch', ['ngSanitize']); 

app.controller('ListKeys', function($scope, $http) { 

    $scope.getKeys = function() { 
    $http.get('/api/keys'). 
     success(function (data) { 
     $scope.response = data; 
     }). 
     error(function (data){ 
     $scope.response = {} 
     }); 
    }; 

}); 

Это делает не делайте ничего, кроме того, что вы вызываете ошибку «Неактивировать объект», и это все.

Как я могу отладить, почему он не работает?

+0

Ответы правильные, но «Uncaught Object» выбрасывается, потому что одна из ваших зависимостей между модулями не выполняется. Вы импортируете файл 'angular-sanitize.js'? – Mike

+0

@Mike спасибо за ответ, это был последний пункт, прежде чем моя маленькая домашняя страница начала работать. Благодаря!! – Istvan

ответ

1

Вы хранения значений в $scope.response, но вы используете $scope.bucket в ng-repeat:

$scope.getKeys = function() { 
$http.get('/api/keys'). 
    success(function (data) { 
    $scope.buckets= data; 
    }). 
    error(function (data){ 
    $scope.buckets= {} 
    }); 

};

+0

Это все. Бесконечно благодарен! – Istvan

0

Похоже, у вас нет объекта области, называемого buckets. Я ожидаю увидеть:

$scope.buckets = data 

Внутри обратного вызова успеха.

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