ng-repeat не работает в методе get в angularjs - PullRequest
0 голосов
/ 10 июня 2019

На самом деле, я написал код в angularjs, в веб-браузере отображает извлечение данных, но ng-repeat не работает.Я не знаю, как это исправить.не могли бы вы мне помочь?

В угловом коде js

$scope.fetchData = function()
{
    $http({
        method: 'GET',
        url: 'fetch_data.php'
    }).then(function (response){
        console.log(response);
        namesData = response.data;
        console.log(namesData );
    },function (error){
        console.log(error);
    });
};
<tr ng-repeat="name in namesData ">
   <td>{{name.first_name}}</td>
   <td>{{name.last_name}}</td>
</tr>

Отображение в браузере

{mydata: Array(0), namesData: "<[{"first_name":"xvcv","last_name":"sdsd"},{"first_name":"sdvs","last_name":"sdfds"}]"}

1 Ответ

1 голос
/ 10 июня 2019

Замените ваш namesData на $scope.namesData.

Вы не можете привязать обычные переменные к вашему шаблону / представлению.Для этого вам нужно использовать $scope/$rootScope.

$scope.namesData = []; //you need to instantiate this first to avoid errors

$scope.fetchData = function()
{
  $http({
    method: 'GET',
    url: 'fetch_data.php'
  }).then(function (response){
    console.log(response);
    $scope.namesData = response.data;
    console.log($scope.namesData );
  },function (error){
    console.log(error);
  });
};

PS

Ошибка: [ngRepeat: dupes]

Происходит, еслив выражении ngRepeat есть повторяющиеся ключи.Дублирующиеся ключи запрещены, потому что AngularJS использует ключи для связи узлов DOM с элементами.

Это означает, что $scope.namesData имеет некоторые значения, которые являются дубликатами.Вы можете решить, добавив "track by $index".

Это будет выглядеть так:

ng-repeat="name in namesData track by $index"

...