Javascript AngularJs服务返回空列表
我需要通过angularjs服务发出http请求。我知道它是异步工作的,但我无法捕获数据Javascript AngularJs服务返回空列表,javascript,angularjs,promise,httprequest,Javascript,Angularjs,Promise,Httprequest,我需要通过angularjs服务发出http请求。我知道它是异步工作的,但我无法捕获数据 var dataRifValues = []; monitoraggioProcessiService.getDataRifList().then(function(response) { angular.forEach(response, function(date, key) { dataRifValues.push(date.dataRiferimento); });
var dataRifValues = [];
monitoraggioProcessiService.getDataRifList().then(function(response) {
angular.forEach(response, function(date, key) {
dataRifValues.push(date.dataRiferimento);
});
});
this.getDataRifList = function() {
var url = $rootScope.baseLink + "/processi/dataRif";
var deferred = $q.defer();
var list = [];
if (list.length === 0) {
var promise = ispCommunicationManager.returnPromise(
ispServiceRequest.prepareRequest(url,"GET",
{
"Content-Type" : "application/json"
}, null, null));
promise.then(function(response) { // Success callback
list = response.data;
deferred.resolve(response.data); // Resolve
}, function(response) { // Error callback
list = response;
deferred.reject(response); // Reject
util.defaultErrorHandler(list,null);
});
list = deferred.promise;
}
return list
}
我正在调用getDataRifList函数。我希望有一个包含一些数据的列表
就像叫了两遍。第一次列表为空,第二次有数据,但我的函数已经执行
错误是什么
编辑
调用正常,但当我需要将filtroDataRiferimento设置为selected属性时,dataRifValues[0]为空。而values属性具有这些值
变量filtroDataRiferimento={
label : "Data di riferimento",
name : "dataRiferimento",
type : "single",
values : dataRifValues,
selected : dataRifValues[0],
flagMatch : false
};
$scope.filtraMonitoraggioProcessi(filtroDataRiferimento.selected);
getDataRifList函数正在执行多个活动。我相信但不确定仅仅返回promise对象也能解决问题,而不是创建并返回延迟对象。 和
util.defaultErrorHandler(list,null);
可以在getDataRifList()调用失败的情况下处理
提示:不需要检查长度,因为变量的声明正好在条件
if(list.length==0){
您好,谢谢您的帮助。我尝试使用一个简单的$http请求,但我遇到了同样的问题。调用有效,但值仍然为空。我编辑我的问题:)