2014-10-30 4 views
0

내 http API에 대한 호출을 내 RootCtrl있는 메서드가 있고 결과를 반환합니다. 나는 ...과 같이, 자식 컨트롤러 중 하나에

var access = $scope.checkAccess(); 

을이 메소드를 호출 할 때

$scope.checkAccess = function(){ 
    var result = MyService.me(); 
    result.then(function(response){ 
     console.log(response); 
     if (response.data != 'false'){ 
      return true; 
     } 
     else{ 
      return false; 
     } 
    }); 
} 

는하지만 access이 정의되지 않은 나에게 말한다.

내가 뭘 잘못하고 있니?

다음은 서비스 호출의 모양입니다.

me: function() { 
    return $http({ 
     url: 'http://localhost:5000/api/me', 
     method: 'GET' 
     }); 
} 

답변

2

실제로 약속 객체를 반환하는 것을 잊었습니다. 여기

당신은 이동 :

$scope.checkAccess = function(){ 
    var result = MyService.me(); 
    return result.then(function(response){ 
     console.log(response); 
     if (response.data != 'false'){ 
      return true; 
     } 
     else{ 
      return false; 
     } 
    }); 
} 
+0

@OP, 메모를'access'이 약속 객체가 아닌 값이 포함됩니다 그러나 것이다. 부울 값을 얻기 위해서'.then()'를 콜백과 함께 사용해야 만 할 것이다. –