我实际上用angularjs开发了一个应用程序,我遇到了$ http的问题,以及对我的webservice的异步服务请求的结果。
实际上,我正在使用此代码:
var promise = undefined;
UserService.getAll = function (callback) {
promise = $http({
url: __ADRS_SRV__ + "users",
method: "GET",
isArray: true
}).success(function(data){
return data;
}).error(function(data){
return $q.reject(data);
});
return promise;
}
这不起作用,给我一些类似的东西,我不知道为什么:
要知道:在我的控制器中,我想使用一个非常简单的语法,如
var data = UserService.getAll();
您是否知道我应该如何处理以正确访问我的数据?
感谢您提前
答案 0 :(得分:2)
你得到了回报。有多种方法可以使用这个承诺。
示例1 (在服务中使用promise并返回对象的引用):
UserService.getAll = function () {
var dataWrapper = {
myData: {},
error: null
};
$http({
url: __ADRS_SRV__ + "users",
method: "GET",
isArray: true
}).success(function(data){
dataWrapper.myData = data;
}).error(function(data){
dataWrapper.error = true;
return $q.reject(data);
});
return dataWrapper;
}
示例2 (返回承诺并直接在控制器中使用):
// service
UserService.getAll = function () {
return $http({
url: __ADRS_SRV__ + "users",
method: "GET",
isArray: true
});
}
// controller
var promise = UserService.getAll();
promise.success(function(data) {
$scope.data = data;
});
示例3 (使用常规回调):
// service
UserService.getAll = function (cb) {
$http({
url: __ADRS_SRV__ + "users",
method: "GET",
isArray: true
}).success(cb);
}
// controller
UserService.getAll(function(data) {
$scope.data = data;
});
答案 1 :(得分:1)
你提到的“东西”是你创造和回归的承诺。