두 개의 HTTP 요청이 있습니다. 1. 게시 방법 2. 가져 오기 방법.
두 개의 HTTP 요청에서 데이터를 가져와야합니다.
내 코드를 추가했습니다. 그러나 나는 이것이 올바른 접근법이 아니라고 생각합니다. 제발 제안 해주세요.
질문 1 :
두 번 동기식 호출 후. 컨트롤러
(function() {
'use strict';
angular.module('myApp').controller('loginController', loginController);
loginController.$inject = ['$auth', '$http', '$location', '$scope', '$window', '$rootScope', 'commonService', '$q', '$localStorage'];
// inject an auth service here!
function loginController($auth, $http, $location, $scope, $window, $rootScope, commonService, $q, $localStorage) {
commonService.getHostDetails().then(function(data) {
commonService.login().then(function(data) {
}).catch(function(data) {
alert('Sorry ! test function faild');
});
}).catch(function(data) {
alert('Sorry ! login function faild');
});
};
})();
서비스 코드 :
angular.module('myApp').factory('commonService', ['$q', '$timeout', '$http',
function($q, $timeout, $http, commonService) {
return ({
login : login,
test : test,
});
function login() {
// create a new instance of deferred
var deferred = $q.defer();
$http.get('host.json')
// handle success
.success(function(data, status) {
deferred.resolve(data);
})
// handle error
.error(function(data) {
deferred.reject(data);
});
// return promise object
return deferred.promise;
}
function test(formData) {
// create a new instance of deferred
var deferred = $q.defer();
console.log("in service");
console.log(formData);
$http.post('/api/test', formData, {
headers : {
'Content-Type' : 'application/json'
}
})
// handle success
.success(function(data) {
deferred.resolve(data);
})
// handle error
.error(function(data) {
deferred.reject(data);
});
// return promise object
return deferred.promise;
}
}]);
질문 -2.
또한 두 개의 http 요청은 두 개의 API에 따라 달라집니다. 첫 번째 http 요청 데이터가 두 번째 API로 파싱되어야합니다.
처럼 뭔가를 할 수 해결해야 /www.npmjs.com/package/angular-httpshooter), 더 나은 제어로 거의 같은 일을한다. – Siddharth