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']
。有关详细信息,请参阅。