Angular:使用promises时奇怪的数据层次结构

时间:2015-09-29 19:10:14

标签: angularjs

我有一个使用promise检索数据的服务:

...
return {
   getData : getData
}

function getData(aParam) {
    $http.get('test.json').then(function (response) {
          return response.data;
    });
}
...

在我的控制器中,注入了服务,我可以这样调用我的方法:

...
var myData = MyService.getData('foobar');
...

调用该服务但是当我检查myData内容时,我必须像这样访问它:

myData.$$state.value.foobarArray

问题:是否可以避免$$state.value部分?

问候。

2 个答案:

答案 0 :(得分:0)

如果我有足够的积分,我会将其添加为评论,但请尝试在$ http.get之前添加回复。

答案 1 :(得分:0)

您的服务公开异步函数,因此它需要返回一个承诺..

function getData(aParam) {
    return $http.get('test.json');
}

...并解决控制器中的承诺。

MyService.getData('foobar').then(function(data){
    var myData = data;
});

或使用回调函数......

function getData(aParam, callback) {
    $http.get('test.json').then(function (response) {
          callback(response.data);
    });
}

...从控制器传入。

 MyService.getData('foobar', function(data){
     var myData = data;
 });

我无法从头顶解释“奇怪的层次结构”,但这应该让你朝着正确的方向前进。