2014-04-14 3 views
1

Webservice에 JSONP 요청을 보내고 데이터를 JSON 파일로 가져 와서 AngularJS 지시문에서 UI에 표시 한 범위 변수에 값을 할당하는 다음 AngularJS 컨트롤러 기능이 있습니다. {{variableName}} (으)로 표시됩니다. 내가 페이지로드를 실행할 때이 기능은 내가 함수로이를 호출 할 때, 그러나 그것은보기 값을 업데이트하지 않습니다, 잘 작동 :보기의 AngularJS 범위 변수 업데이트

$scope.getData = function(id) { 
    $http.jsonp(webServices.getData+'?callback=JSON_CALLBACK', config).then(function (response) { 
     $scope.data = response.data; 
     if($scope.data.status == "ok") { 

     $scope.data.receivedData = campaign.receivedData; 

     } 
    }) 
} 

아무도 나에게에 힌트를 줄 수있는 방법이 업데이트를 값을 만들 수 있습니다 JSONP 호출이 값을 반환 할 때보기 (양식 입력 컨트롤)에서 동적으로? $ apply()에 대해서는 읽었지만 어디서 어떻게 사용하는지 모르겠습니다.

감사합니다. , 당신이 뭔가를 설정한다고 가정 무엇 캠페인

$scope.data.receivedData = campaign.receivedData; 

하지만 당신은 정의하지 않은 :

+0

HTML은 무엇입니까? – zeroflagL

+0

텍스트 입력 cycero

답변

0

다음 해결책이 도움이됩니까?

$http.jsonp(webServices.getData+'?callback=JSON_CALLBACK', config).then(function (response) { 
    $scope.data = response.data; 
    if($scope.data.status == "ok") { 
     $scope.data.receivedData = campaign.receivedData; 
     $scope.$apply(); 
    } 
}) 
+0

안녕하세요, Tim 씨, 제 코드를 수정 해 주셔서 감사합니다. :) – Tamura

0

내가 당신이 이전 ....

다음 핸들러를 약속 당신에 무엇을했다 스크래치 webServices.getData에 대한 호출에서 돌아 오는 데이터 내에있는 campaign과 관련된 $ 범위 (사용자가 볼 수있는 것이 바인딩됩니다).

+0

의 간단한 입력으로 생각하십시오. 이렇게하면이 오류가 발생합니다. http://errors.angularjs.org/ 1.3.0-beta.2/$ rootScope/inprog? p0 = % 24digest – cycero

+0

업데이트 된 코드를보고 모든 로직을 scope.apply에 배치하십시오. 이렇게하면 다이제스트주기를 한 번만 실행하면됩니다. – Brocco

+0

감사합니다. 결과는 동일합니다 - 오류 http://errors.angularjs.org/1.3.0-beta.2/$rootScope/inprog?p0=%24digest – cycero

0

함수에 바인드되지 않습니다 ... 값에 바인드하십시오. 및 다음 promise

$scope.getData = function(id) { 
    // return the promise.... 
    return $http.jsonp(webServices.getData+'?callback=JSON_CALLBACK', config).then(function (response) { 
     $scope.data = response.data; 
     if($scope.data.status == "ok") { 

     $scope.data.receivedData = campaign.receivedData; 

     } 
    }) 
} 

// fetch that data into a variable, that you bind to. 
$scope.myActualData = $scope.getData(); 

나중에 다시 GetData의를 호출 할 경우 return, 단지 바운드 변수에 다시 asign, 호출니까.

$scope.myActualData = $scope.getData(); 
+0

죄송하지만 이것은 작동하지 않습니다. – cycero

관련 문제