我有一个使用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
部分?
问候。
答案 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;
});
我无法从头顶解释“奇怪的层次结构”,但这应该让你朝着正确的方向前进。