2017-01-19 3 views
0

Ich benutze Angular HTTP Anfrage erhalten, um Daten von. Net Web API Web-Service, Beide Websites (eckige und Web-Dienste) sind auf dem gleichen Web-Server bereitgestellt. Hier ist der Servicecode zu json Liste aller Websites von Service zu erhalten:Ich kann keine Versprechen in Angular js

this.getAllWebsites = function (callback) { 
     return $http.get($rootScope.url + 'GetAllWebsites').success(function (data) { 
      callback(data) 
     }); 
    } 

das ist, was ich in der Steuerung tue:

//function triggered at the intialization of controller 
    $scope.init = function() { 
     $scope.model = []; 

     websiteService.getAllWebsites(function (data) { 
      $scope.model = data; 
      websiteService.paginate($scope); 
     }); 
    }; 

Meine URL korrekt ist, ist das Problem, dass wenn ich debug Bei meinem JavaScript-Code gibt der Dienst Daten zurück, sonst gibt er keine Daten zurück. Ich weiß, dass das Problem vielversprechend ist und nicht zurückgegeben wird. Bitte schlagen Sie eine Problemumgehung vor.

+0

Try 'return Rückruf (Daten);' in der Service-Funktion. – rrd

+0

GET-Aufruf sollte etwa so lauten: $ http.get ('/ someUrl', config) .then (successCallback, errorCallback); – Dario

+0

@Dario, wenn HTTP-Anfrage verspricht, warum sollten wir dann für das verwenden? – Umar

Antwort

1
this.getAllWebsites = function (callback) { 
    return $http.get($rootScope.url + 'GetAllWebsites').then(function (response) { 
     return response.data 
    }); 
} 

im Regler

//function triggered at the intialization of controller 
$scope.init = function() { 
    $scope.model = []; 

    websiteService.getAllWebsites().then(function (data) { 
     $scope.model = data; 
     websiteService.paginate($scope); 
    }); 
};