我正在研究angularjs服务。我从API端点获得了一些回调响应。我正在使用角度jsonP来获取回调响应。我已在下面附上我的回复
projectInstance.jsonpCallback("getActiveProduct",{"totalRecords":null,"projectSnapShot":[{"projectId":"333333","projectNumber":"123456","projectStatus":"Active"}]})
这是我的服务功能
getActiveProduct: function() {
var deferred = $q.defer();
var url ="myserver/getproject.json"
$http.jsonp(url, {
jsonpCallbackParam: 'callback',
data:''
}).then(function(data){
deferred.resolve(data.data);
},function(error){
console.log(error);
return deferred.reject(err);
});
return deferred.promise;
}
使用这些jsonp方法我尝试获取上面的响应。但是它会抛出下面的控制台错误
Uncaught ReferenceError: projectInstance is not defined
如何获取我的回复。有人可以帮助我解决这些问题吗?
答案 0 :(得分:0)
$ http服务已经返回一个promise。使用自己的$ q.defer管理承诺是不好的。你可以摆脱$ q并只返回数据。
您的服务也应该返回$ http。
创建的承诺function getActiveProduct() {
var url ="myserver/getproject.json"
return $http.jsonp(url, {
jsonpCallbackParam: 'callback',
data:''
}).then(function(data){
return data.data;
},function(error){
console.log(error);
return err;
});
}
您可以这样方式调用此服务:
myService.getActiveProduct().then(function(res) {
console.log(res);
});