2014-01-22 4 views
2

$ q가 Angular JS의 스코프에 정상적으로 통합 된 곳을 여러 곳에서 읽었습니다. 이 있다고 가정 : 물론

var superService = function() { 
    var deferred = $q.defer(); 
    deferred.resolve(['foo', 'bar']); 
    return deferred.promise; 
}; 

를, $ q를 여기에 쓸모하지만 $ 제한 시간을 사용하거나 $의 HTTP 호출을 실행하면, 결과는 동일합니다.

내가 이렇게 할 경우 :

superService().then(function(data) { 
    $scope.result = data; 
}); 

그것은 괜찮습니다. 하지만 그렇게하면 :

$scope.result = superService(); 

괜찮을 것입니다. 하지만 내 경우에는 $ scope.result가 3 개의 요소를 포함하고 있습니다. (예 : 템플릿에서 ng-repeat로 볼 수 있습니다.) "then", "catch"및 "finally" , 'bar'] 물론. 여기

angular.module('myModule', []) 
    .factory('HelloWorld', function($q, $timeout) { 
    var getMessages = function() { 
     var deferred = $q.defer(); 
     deferred.resolve(['Hello', 'world']); 
     return deferred.promise; 
    };  
    return { 
     getMessages: getMessages 
    }; 
    }) 
    .controller('HelloCtrl', function($scope, HelloWorld) { 
    $scope.messages = HelloWorld.getMessages(); 
    //HelloWorld.getMessages().then(function(data) { 
    // $scope.messages = data; 
    //}); 
    }); 

어떤 생각 :

내 구체적인 예

?

+0

여기에 질문이 없습니다. – Stewie

+1

나는 그가 뛰고있는 것에 익숙하다 - 나의 대답을 보라 - 그리고 그것은 일목 면밀한 질문으로부터 약간 불분명하다면 완벽하게 유효하다. –

+0

여기에 문제가 있습니다. 문제는 의문의 대상이됩니다. 문제를 읽는 것은 질문을 읽는 것과 같습니다 ... 적어도 한 사람은 내 문제를 이해 한 것 같습니다 : 해결되었습니다.) – neolitec

답변

관련 문제