angularjs의 배수는 $http입니다.요구를 받다
두 개 해야 돼$http.get
추가 계산을 위해 반환된 응답 데이터를 서비스로 보내야 합니다.
나는 다음과 같은 것을 하고 싶다.
function productCalculationCtrl($scope, $http, MyService){
$scope.calculate = function(query){
$http.get('FIRSTRESTURL', {cache: false}).success(function(data){
$scope.product_list_1 = data;
});
$http.get('SECONDRESTURL', {'cache': false}).success(function(data){
$scope.product_list_2 = data;
});
$scope.results = MyService.doCalculation($scope.product_list_1, $scope.product_list_2);
}
}
내 마크업에서 나는 그것을 다음과 같이 부르고 있다.
<button class="btn" ng-click="calculate(query)">Calculate</button>
~하듯이$http.get
비동기이므로 전달 시 데이터가 수신되지 않습니다.doCalculation
방법.
어떻게 하면 여러 개를 구현할 수 있는 방법$http.get
위의 구현과 같이 응답 데이터를 모두 서비스로 전달하도록 요청하고 처리합니까?
필요한 건$q.all
.
더하다$q
컨트롤러의 의존성에 대해 다음 작업을 수행합니다.
$scope.product_list_1 = $http.get('FIRSTRESTURL', {cache: false});
$scope.product_list_2 = $http.get('SECONDRESTURL', {'cache': false});
$q.all([$scope.product_list_1, $scope.product_list_2]).then(function(values) {
$scope.results = MyService.doCalculation(values[0], values[1]);
});
간단하면서도 확실한 방법이 있습니다: 양쪽 콜백에서 계산을 호출합니다.첫 번째 호출(둘 중 첫 번째 호출)에는 불완전한 데이터가 표시됩니다.그것은 아무것도 하지 않고 빨리 빠져나가야 한다.두 번째 호출은 제품 목록을 모두 보고 작업을 수행합니다.
저도 최근에 비슷한 문제가 있어서 답변을 올리려고 합니다.
이 경우 계산은 두 개뿐이고 이 숫자는 변이할 수 없는 것으로 보입니다.
단, 이것은 동시에 2개 이상의 요청이 트리거되는 모든 경우에 해당됩니다.
따라서 2개 이상의 사례를 고려하여 다음과 같이 구현합니다.
var requests = [];
requests.push($http.get('FIRSTRESTURL', {'cache': false}));
requests.push($http.get('SECONDRESTURL', {'cache': false}));
$q.all(requests).then(function (responses) {
var values = [];
for (var x in responses) {
responses[x].success(function(data){
values.push(data);
});
}
$scope.results = MyService.doCalculation(values);
});
이 경우 doCalculation이 어레이를 대신 받아들이도록 강제합니다.
언급URL : https://stackoverflow.com/questions/17027196/angularjs-multiple-http-get-request
'programing' 카테고리의 다른 글
경고: mysqli_real_connect(): (HY000/2002)1452행의 /private/tmp/wordpress/wp-includes/wp-db.php에 이러한 파일 또는 디렉토리가 없습니다. (0) | 2023.03.11 |
---|---|
ReactJS에서 하위 구성요소에서 상위 구성요소로 데이터를 전달하는 방법은 무엇입니까? (0) | 2023.03.11 |
Reactjs에 setState()의 동기 대체가 있습니까? (0) | 2023.03.11 |
양식 입력 필드 지우기 및 재설정 (0) | 2023.03.11 |
WordPress - 사용자 정의 500 서버 오류 페이지를 추가하는 방법 (0) | 2023.03.11 |