需要做刷新显示数组,传入json数据和显示通过ng-repeat

Need to do refresh for displaying array that coming in json data and displaying through ng-repeat

本文关键字:数据 显示 ng-repeat json 传入 刷新显示 数组      更新时间:2023-09-26

我从后端收到响应并保存在控制器中的"allinfo"变量。接收的回复数据是:人的姓名、出生年月和爱好。人的爱好是数组,可以有n个。

在我看来,我应该在allinfo中使用ng repeat over allinfo作为info,在info.hobby中使用ng repeat hobby作为hobs。

我面临的问题是,当我在我的视图中重复所有信息的信息时,它显示名称和Dob,但对于hooby,我需要做刷新,然后它显示爱好。

我有控制台响应,发现Hobby对象在allinfo中被接收,但事情是它正在接收空数组,刷新一次后刷新数组的所有元素。

帮帮我。提前谢谢大家

试试这个,它会像你期望的那样工作。

在下面的代码中,我假设responseData具有与您从服务器获得的数据相同的格式。

var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
    $scope.responseData = [
             {
             "name" : "Alpha",
             "dob" : "04-11-1991",
             "hobby" : [["singing"],["writing"]]
             },
             {
             "name" : "Beta",
             "dob" : "04-11-1990",
             "hobby" : [["playing"],["making friends"]]
             }
    ];
    
    var hobbiesData = [];
    for (var i in $scope.responseData) {
      hobbiesData = [];
      for (var j in $scope.responseData[i].hobby) {
        for(var k in $scope.responseData[i].hobby[j])
        hobbiesData.push($scope.responseData[i].hobby[j][k]);
      }
          var hobbies = hobbiesData.join();
          $scope.responseData[i].hobby = hobbies;
    }
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
  <div ng-repeat="data in responseData">
         Name : {{data.name}}<br>
         Date of Birth : {{data.dob}}<br>
         Hobbies : {{data.hobby}}
  </div>
</div>