AngularJS没有在MongoDB中显示数组内的对象

时间:2016-09-26 19:49:37

标签: javascript angularjs mongodb

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跟踪,如第一个代码片段所示。

我在这里做错了什么?

2 个答案:

答案 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]。

谢谢大家的快速回复!