Я хочу получить доступ к массиву, вызвав 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
Как решить эту проблему??
У тебя есть:
$scope.records = data;
console.log(records);
Очевидно, что вторая строка должна быть:
console.log($scope.records);
Поскольку записи (только "записи") не определяются вне области видимости.
Здесь запись фактически является переменной области. Таким образом, вы не можете использовать переменную просто как records
. Это всегда должно быть $scope.records
поэтому измените код на
$scope.records = data;
console.log($scope.records);
Но если вы хотите использовать records
как обычные переменные. Вы должны объявить его как var records
Таким образом, код изменится на
var records = data;
console.log(records);
Или измените console.log(records);
to console.log($scope.records);
как указано в предыдущих комментариях, поскольку records
не определены или комментируют строку console.log
и она будет работать. Это не имеет ничего общего с ng-repeat