AngularJS不会在我的数据结构中显示“跟踪”条目。它将跟踪显示为“跟踪”:[]作为HTML模板中的空数组,以及其console.log'd。
我的API返回以下数据结构:
[{
"_id": "57e96aaa45b09843a53a4dcd",
"phase": 1,
"notes": "asdf",
"treatment": "asdf",
"patientname": "asdf",
"__v": 0,
"tracking": [
{
"modifiedby": "Person",
"action": "Created",
"_id": "57e96aaa45b09843a53a4dce",
"modifiedat": "2016-09-26T18:36:26.281Z"
}
]
}]
在AngularJS中我有以下工厂:
getwaiting: function(callback){
$http.get('/pre-auth/getwaitingsubmit').then(function success(data){
return callback(data.data)
})
}
在我的控制器中:
WaitingFactory.getwaiting(function(data){
console.log(data);
$scope.waitinglist = data;
});
当我在HTML模板中执行{{waitinglist}}时,它会显示除“跟踪”之外的所有数据。它将跟踪显示为:“tracking”:[],我无法通过插入数据来访问数据。如果我将数据和console.log字符串化,我可以看到数据是IN跟踪,如第一个代码片段所示。
我在这里做错了什么?
答案 0 :(得分:0)
尝试从工厂返回承诺而不是使用回调:
getwaiting: function(){
return $http.get('/pre-auth/getwaitingsubmit').then(function success(data){
return data.data;
})
}
控制器中的
WaitingFactory.getwaiting().then(function(data){
console.log(data.tracking);
$scope.waitinglist = data;
});
小警告:当调用console.log
时在控制台视图中展开数据对象时,它会显示数据对象的最新值,即异步$ http调用时返回有效数据。
请尝试打印data.tracking
,如果这确实是异步问题,则应返回undefined
。请参阅:Weird behavior with objects & console.log
答案 1 :(得分:0)
在尝试了Oberon的建议后,数据以同样的方式打印。
然后我注意到t3__rry的评论只是"循环通过它"肯定有一个ng-repeat,数据就在那里我只需要循环通过它,我猜angularJS只是不想在打印中显示对象。
它仍然很奇怪,在Chrome控制台中它仍然显示跟踪为Array [0]。
谢谢大家的快速回复!