как получить доступ к данным массива из API в Angularjs

0

Я хочу получить доступ к массиву, вызвав API в угловых js. и использовать их в ng-repeat

angularcode:

$scope.onsubmit = function () {
    $scope.records = [];
    var answers = [];
    // Post your data to the server here. answers contains the questionId and the users' answer.
    $http.get('http://localhost/api/leaderboard/:quizId', answers).success(function successCallbac(data,status) {
        $scope.records = data;
         //console.log(records);
    });
};

Код HTML:

<div ng-repeat="list in records">
    <div class="row">
        <h3>{{list}}}</h3>
        <h3> {{ list}}</h3>
    </div>
</div>  

Я вызвал API в событии ng-click, я получаю данные от API, но я не могу их использовать в ng-repeat, записи не отображаются в html, вместо этого он показывает ошибку:

 angular.js:12477 ReferenceError: records is not defined

Как решить эту проблему??

Теги:
angularjs-scope
angularjs-ng-repeat

3 ответа

2

У тебя есть:

$scope.records = data;
console.log(records);

Очевидно, что вторая строка должна быть:

console.log($scope.records);

Поскольку записи (только "записи") не определяются вне области видимости.

0

Здесь запись фактически является переменной области. Таким образом, вы не можете использовать переменную просто как records. Это всегда должно быть $scope.records

поэтому измените код на

$scope.records = data;
    console.log($scope.records);

Но если вы хотите использовать records как обычные переменные. Вы должны объявить его как var records

Таким образом, код изменится на

var records = data;
    console.log(records);
0

Или измените console.log(records); to console.log($scope.records); как указано в предыдущих комментариях, поскольку records не определены или комментируют строку console.log и она будет работать. Это не имеет ничего общего с ng-repeat

Ещё вопросы

Сообщество Overcoder
Наверх
Меню