ng-repeat在angularjs的get方法中不起作用

时间:2019-06-10 07:32:38

标签: angularjs http angularjs-ng-repeat

实际上,我用angularjs编写了代码,在Web浏览器中显示了检索数据,但是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 个答案:

答案 0 :(得分:1)

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);
  });
};

P.S。

错误:[ngRepeat:dupes]

  

在ngRepeat表达式中有重复的键时发生。   重复键被禁止,因为AngularJS使用键来关联DOM   带有项目的节点。

这意味着$scope.namesData的某些值重复。 您可以通过添加"track by $index"来解决。

它看起来像这样

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