2016-08-02 3 views
-1
$http({ 
    url: '/checkUsername', 
    data:{name:$scope.username}, 
    method: "POST" 
}) 
.then(function(response) { 
    $scope.gameStart = true; 
}) 

어떤 이유로 $ scope.gameStart는 then() 내에있을 수 없으므로 바깥에 있어야합니다. Ajax 호출이 끝난 후에 코드를 삽입하지 않고 $ scope.gameStart를 어떻게 사용합니까? 그런 다음이 "$ scope.gamestart"외부의 값을 원하는 경우

+2

왜'then()'호출 내에있을 수 없다고 생각합니까? – str

+0

무슨 일이 일어나고 있는지 더 많은 코드를 게시 할 수 있습니까? 이것은 코드의 아주 작은 부분입니다. 질문에 대한 더 많은 정보를 함께 제공하십시오. – gdyrrahitis

+0

@str이 작동한다고 가정하지만 코드 묶음 대신 함수를 넣고 싶습니다. –

답변

1

일부 기능을 대신 코드

의 무리를 예를 들어 $ .q를 사용할 수있다
$http({ 
    url: '/checkUsername', 
    data:{name:$scope.username}, 
    method: "POST" 
}) 
.then(bunchOfCode) 

function bunchOfCode(response) { 
    console.log('response', response); // still have access to it 
    $scope.gameStart = true; 
} 
+0

호출에 응답과 같은 콜백 매개 변수가 있다면? –

+0

하나의 인수로 함수를 선언하십시오 (응답으로 채워질 것입니다) - 그러면 JavaScript 마법이 발생합니다 - 여전히 '응답'에 액세스 할 수 있습니다 –

+0

magic! 덕분에 –

-1

,이를 위해 당신은 ..

var defer = $q.defer(); 
$http.get('options.json').success(function(result{     
defer.resolve(result); 
}); 
var value = defer.promise; 
+0

나는 downvote –

+1

의 이유를 알 수 있습니다.'$ http'가 이미'$ q'에 기반한 약속을 반환하기 때문입니다. – str

관련 문제