2015-01-10 6 views
0

AngularJs를 배우려고합니다.이 코드는 아래의 이미지에서 볼 수 있습니다. 작성자는 $http.get("url").then(function()...입니다. 내가 이해할 수없는 것은 onUserComplete 함수가 response 매개 변수를 받아들이지 만, then 함수에서이 매개 변수는 response 매개 변수를 전달하지 않고 예제가 작동한다는 것입니다. JavaScript에서 내가 이해해야하는 점은 우리가 다음과 같이해야한다는 것입니다. then(onUserComplete(response)) ; 누구나 내게 그것을 exaplain 할 수 있습니까? .then각도 전달 매개 변수

enter image description here

답변

1

.then() 함수는 매개 변수로 콜백 함수를 사용합니다. 콜백 함수는 변수 onUserComplete에 저장됩니다. 따라서 작성자가 .then(onUserComplete)이라고 쓰면 onUserComplete이 호출되지 않고 참조로 전달됩니다.

+0

우이 좋아, 나는 그것이 호출시'response'을 전달합니다 그래서, 왜 내가이 매개 변수를 전달하기 위해 기다리고 있었다 것 호출의 생각 나는 '원 :

비슷한 예에 보라 그것을 통과해야합니까? –

+0

맞아요 :) – veritas1

0

onUserComplete가 정확히 무엇을 매개 변수로하는 함수를 기대한다. 간단한 구문에서

는, 당신은 볼 것이다 :
.then(function (response) { 
    $scope.user = response.data; 
}); 

그리고 일반적인 방법으로

, 익명 구문을 사용하여 :

.then(response => 
    $scope.user = response.data; 
); 

가 그래서 그것에가 전부입니다. onUserComplete은 대신 사용할 수 있습니다.

1

then 함수는 응답 (데이터, 실제로) 객체로 콜백을 호출합니다.

2

나는 다시 문서를 통해 갈 제안 : https://docs.angularjs.org/api/ng/service/ $ HTTP

짧은 긴 이야기 할 것이 아니라 :

그 때는 기본적으로 도착 서버의 응답을 의미 반환 약속, 대기를 .

응답

는 서버에서 데이터를 매개 변수 데이터를 포함하고 함수 이름은 함수에 대한 subsitute가 그래서 매개 변수로 excpect 기능이

(의는 JSON을 가정 해 봅시다), 귀하의 경우는 onUserComplete입니다.

// Simple GET request example : 
$http.get('/someUrl'). 
    success(function(data, status, headers, config) { 
    // this callback will be called asynchronously 
    // when the response is available 
    }). 
    error(function(data, status, headers, config) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
    });