【问题标题】:Need to do refresh for displaying array that coming in json data and displaying through ng-repeat需要刷新以显示传入 json 数据并通过 ng-repeat 显示的数组
【发布时间】:2017-03-27 06:43:20
【问题描述】:

我收到来自后端的响应并保存在我的控制器中的“allinfo”变量中。接收的响应数据为:人名、人的出生日期和人的爱好。人的爱好是数组,可以是n个。

在我看来,我已将 ng repeat ovr all info 应用为 allinfo 中的信息,并将重复爱好作为 info.hobby 中的滚刀。

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

我有控制台响应,发现在 allinfo 中收到了 Hobby 对象,但问题是它正在接收空数组,并且在一次刷新后它会刷新数组的所有元素。

帮我解决这个问题。提前谢谢你

【问题讨论】:

  • 请分享一些代码。
  • 实际上我现在没有代码。过段时间再分享。

标签: javascript angularjs arrays json angularjs-ng-repeat


【解决方案1】:

试试这个,它会按照你的期望工作。

在下面的代码中,我假设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>

【讨论】:

  • 感谢这个。还有一件事我想提一下,在我的 ng 重复爱好作为 info.hobb 中的滚刀时,我还使用了 join(',') 以便数组作为“ hobby" : [[playing],[making friends]"]coming 应该用逗号隔开。抱歉最近说了这件事。这是更正的一个。现在你将如何根据这个更正的代码来改变它
  • 但是爱好数组仅以逗号分隔。检查code snippet
  • 是的,你说得非常正确,但我错误地忘记在我的回复中提到我收到的数组数组,比如“爱好”:[[玩][交朋友]]。因此,如果现在在这里应用 ng repeat,那么它会显示输出为爱好:[玩][交朋友]。这就是我使用加入的原因,然后它在 REFRESH 上显示为爱好:玩,交朋友。我知道,我在某个地方犯了错误。我是 angualrjs 的新手。
  • @Mohammed 我根据您的更改请求更新了代码。请立即检查。我希望它会按照您的要求工作。
  • @Mohammed 您检查过答案了吗?..如果它按照您的要求工作,请将其标记为正确答案,以便对其他人也有益。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 1970-01-01
  • 2013-03-04
  • 1970-01-01
相关资源
最近更新 更多