2014-10-30 127 views
0

我的RootCtrl中有一個方法可以調用我的http api,並返回結果。

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

但是當我嘗試調用此方法在兒童控制器之一,像這樣......

var access = $scope.checkAccess(); 

它告訴我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()'與回調來獲得布爾值。 – 2014-10-30 18:44:42