AngularJS ng重复格式的多层JSON

AngularJS ng重复格式的多层JSON,angularjs,angularjs-ng-repeat,traversal,Angularjs,Angularjs Ng Repeat,Traversal,我的数据如下所示: [ { "TravelerExtended": { "ExtendedInt_1": { "#text": "0", "Label": "Do you require the hotel has a spa or fitness center?:" }, "ExtendedInt_2": { "#text": "0", "Label": "Do you prefer

我的数据如下所示:

[
  {
    "TravelerExtended": {
      "ExtendedInt_1": {
        "#text": "0",
        "Label": "Do you require the hotel has a spa or fitness center?:"
      },
      "ExtendedInt_2": {
        "#text": "0",
        "Label": "Do you prefer to be prechecked into your room?:"
      },
      "ExtendedInt_3": {
        "#text": "0",
        "Label": "Connecting/Adjoining rooms, when traveling with family?:"
      },
$http.get('DP_URL/agent/misc/proxy', {params: params}).success(function(data) {
       $scope.is_loading = false;
       $scope.profiles = formatData(data);

   });    
formatData(dataObject) {
       var dataArray = [];
       angular.forEach(dataObject, function(value, key) {
               dataArray.push(value);
       });
       return dataArray;
   }

那么,我的$范围是:

define(function () {
    return function ($scope, $ticket, $person, $http, $el, $app) {
        // TODO

    $scope.is_loading = true;

    var params = {
        url: "http://10.100.1.98:81/myidapi.php",

        // Any other parameters will be sent as-is
        // to your remote web service.
        // For example, here we are sending an 'email' parameter:
        id: $ticket.id
    };

    $http.get('DP_URL/agent/misc/proxy', {params: params}).success(function(data) {
        $scope.is_loading = false;
        $scope.profiles = data;

    });    


    };

});
当然,我还有HTML输出试图使用各种NG函数:

<div ng-repeat="traveler in profiles">
        Extended Profile
    <div ng-repeat="profile in traveler.TravelerExtended"> 
        <li ng-repeat-"field in profile.ExtendedInt_1">
         {{field.label}} {{field.#text}}
        </li>
    </div>
</div>

扩展剖面
  • {{field.label}{{field.#text}}

  • 我似乎不知道如何获取第三级数据。看起来可能是初始数据加载的格式不正确,或者我只是把ng repeat函数搞砸了

    ng repeat
    对数组有效。。。在粘贴的数据结构中,只得到一个数组(
    profiles
    ),其中有一个对象(
    TravelerExtended
    ),其中还有3个对象(
    ExtendedInt_1、ExtendedInt_2、ExtendedInt_3

    要遍历它们,您需要在单个
    ng repeat
    中工作(因为您只有一个数组)。下面的代码对粘贴的数据结构进行遍历

    var-app=angular.module(“myApp”,[]);
    app.controller(“myCtrl”,函数($scope){
    $scope.records=[
    “阿尔弗雷德·福特基斯特”,
    “Berglunds snabbköp”,
    “莫特祖玛商业中心”,
    “恩斯特·汉德尔”,
    ]
    $scope.profiles=[{
    “TravelerExtended”:{
    “ExtendedInt_1”:{
    “文本”:“0”,
    “标签”:“您是否要求酒店有水疗中心或健身中心?”
    },
    “ExtendedInt_2”:{
    “文本”:“0”,
    “标签”:“您希望被预先检查到您的房间吗?”
    },
    “ExtendedInt_3”:{
    “文本”:“0”,
    “标签”:“与家人一起旅行时,连接/相邻房间:”
    }
    }
    },
    {
    “TravelerExtended”:{
    “ExtendedInt_1”:{
    “文本”:“0”,
    “标签”:“2您是否要求酒店有水疗中心或健身中心?”
    },
    “ExtendedInt_2”:{
    “文本”:“0”,
    “标签”:“2您希望被预先检查到您的房间吗?”
    },
    “ExtendedInt_3”:{
    “文本”:“0”,
    “标签”:“2个相连/相邻的房间,与家人一起旅行时?”
    }
    }
    }
    ];
    /*
    
    对于(var i=0;iAkber所说的是正确的。如果您需要在对象内部自动循环,您可以执行以下操作:

    [
      {
        "TravelerExtended": {
          "ExtendedInt_1": {
            "#text": "0",
            "Label": "Do you require the hotel has a spa or fitness center?:"
          },
          "ExtendedInt_2": {
            "#text": "0",
            "Label": "Do you prefer to be prechecked into your room?:"
          },
          "ExtendedInt_3": {
            "#text": "0",
            "Label": "Connecting/Adjoining rooms, when traveling with family?:"
          },
    
    $http.get('DP_URL/agent/misc/proxy', {params: params}).success(function(data) {
           $scope.is_loading = false;
           $scope.profiles = formatData(data);
    
       });    
    formatData(dataObject) {
           var dataArray = [];
           angular.forEach(dataObject, function(value, key) {
                   dataArray.push(value);
           });
           return dataArray;
       }
    
    

  • 元素的允许父元素不包括
    元素。请参阅。
    字段。#text
    是非法语法。需要使用括号语法属性访问器:
    字段['#text']
    。有关详细信息,请参阅。