rest-api에 3 가지 $ http GET 호출을 사용하여 다음 컨트롤러를 만들었습니다.REST-api에 대한 무질서 쿼리의 무작위 결과
$http({method: 'GET', url: REST_CONFIG.url+'/api/lims/data/runs/list'})
.success(function(data, status, headers, config) {
form.runs = data;
})
.error(function(data, status, headers, config) {
form.runs = [];
});
form.data.analysis = {"analysisName": "","analysisprofile": {"workflows": []},"run": ""};
//Get all Default Workflows
$http({method: 'GET', url: REST_CONFIG.url+'/api/workflows/default/list'})
.success(function(data, status, headers, config) {
form.workflows = data;
})
.error(function(data, status, headers, config) {
form.workflows = [];
});
//Get all databases
$http({method: 'GET', url: REST_CONFIG.url+'/api/list-databases'})
.success(function(data, status, headers, config) {
form.databases = data;
})
.error(function(data, status, headers, config) {
form.databases = [];
});
간혹 query1과 query2 (query2는 query1의 결과가 있음)의 결과가 같습니다. 이 경우 나머지 api는 query1의 2 배를 수행합니다 1. 내 브라우저는 http 쿼리가 좋다 (3 가지 URL)라고합니다. 이상하고 정말로 성가신 일입니다. 나는 또한 시도했다 :
//Get all runs
runs = $http({method: 'GET', url: REST_CONFIG.url+'/api/lims/data/runs/list'});
//Get all Default workflows
defaultWorkflows = $http({method: 'GET', url: REST_CONFIG.url+'/api/workflows/default/list'});
//Get all databases
databases = $http({method: 'GET', url: REST_CONFIG.url+'/api/list-databases'});
$q.all([runs, defaultWorkflows, databases]).then(function(values) {
form.runs = values[0].data;
form.workflows = values[1].data;
form.databases = values[2].data;
});
아무것도 효과가 없다. 나머지 API에서 오는 것입니까? 아니면 내가 잘못하고있는거야?
수정 문제가 해결되었습니다. 요점은 promise와 deffer()와 함께 $ q를 사용하는 것이 었습니다. http://plnkr.co/edit/NGMp4ycmaCqVOmgohN53?p=preview
나는 다음과 같은 코드를 사용 :이 plunkr은 나에게 많은 도움이
당신은$q.all
를 사용하여, 예를 들어,
forms
를 사용하기 전에 완료하기 위해 모든 요청을 기다리는해야 할 필요가
var getInfo = function(){
var promises = [];
var urls = [];
urls.push(REST_CONFIG.url+'/api/lims/data/runs/list');
urls.push(REST_CONFIG.url+'/api/workflows/default/list');
urls.push(REST_CONFIG.url+'/api/list-databases');
angular.forEach(urls, function(url){
var deffered = $q.defer();
$http({method: 'GET', url: url})
.then(function successCallback(response) {
deffered.resolve(response.data);
}, function errorCallback(response) {
deffered.reject();
});
promises.push(deffered.promise);
})
return $q.all(promises);
}
var init = function(){
var promiseInfo = getInfo();
promiseInfo.then(function(datas){
form.runs = datas[0];
form.workflows = datas[1];
form.databases = datas[2];
})
};
첫 번째 예에서 how/where는 'forms'를 사용하고 있습니까? 전화가 끝나기 전에 그냥 사용하고있는 것처럼 들리지만 그 사실을 알지 못했기 때문에 말할 수는 없습니다. –
어떤 각도의 각도를 사용하고 있습니까? 버전 1.6부터 $ http에 대한 성공과 오류가 제거되었습니다 ... http://www.codelord.net/2015/05/25/dont-use-%24https-success/ –
'.success '. 사용되지 않으며 가장 최신의 각 릴리스에서 제거되었습니다. http://stackoverflow.com/a/35331339/2495283 – Claies