2013-07-18 3 views
2

나는 내 약속의 이상한 행동을 보입니다. 다음을보십시오 plunk : http://plnkr.co/edit/uBuBS3Oi7mIPob2jtqkmAngularJS : 올바르게 해결되지 않은 약속

이것은 Marc Galgleish (http://markdalgleish.com/2013/06/using-promises-in-angularjs-views/)의 아주 좋은 기사의 plunk를 기반으로합니다. 약속이 (해결 당)을 충족 한 후

예상대로
angular.module('myModule', []) 
.controller('HelloCtrl', function($scope, HelloWorld) { 
    $scope.messages = HelloWorld.getMessages(); 

    $scope.click = function() 
    { 
    alert($scope.messages[0]); 
    } 
}); 

는, 뷰가 실제를 가져옵니다 내 컨트롤러에서

나는 (서비스에서 연기 객체 점점) 간단한 $ 스코프 속성이라는 메시지가 값을 표시하고 있습니다. 그러나 버튼을 클릭하고 클릭 기능을 실행하면 $ scope.messages를 예상대로 사용할 수 없습니다. 약속은 거기서 해결되지 않는다. ( http://plnkr.co/edit/vX3dSFjzB6R7q4Oed7Gj)

HelloWorld.getMessages().then(function(data){ 
    $scope.messages = data; 
}); 

모든 것을

잘 작동하지만 나에 대한 해결책이 아니다. 내 실제 응용 프로그램에서는 서버와의 동기화가 필요한 경우 이미 동기화 된 캐시 된 객체 (로컬 저장소에서) 또는 약속을 반환하는 서비스입니다. 동기화 후 업데이트 된 객체를 반환합니다.

아이디어가 있으십니까? 사전 크 누트

답변

3

약속은 여전히 ​​해결 후에도 약속의

들으.

이 시도 :

$scope.click = function() 
{ 
    $scope.messages.then(function(msgArray) { 
    alert(msgArray[0]); 
    }); 
}