/ / Tworzenie usługi wokół Restangular w AnglarJS nie zwraca tablicy - angularjs, restangular

Tworzenie usługi wokół Restangular w AnglarJS nie zwraca tablicy - angularjs, restangular

Jestem nowy w AngularJS i Restangular. Ale będąc dobrym obywatelem, myślałem, że spróbuję stworzyć jakieś usługi.

Gdy to działa i otrzymuję tablicę z powrotem do listy rozwijanej:

Restangular.all("/ta/tas").getList().then(function(tas) {
$scope.therapyAreas = tas;
});

Ale kiedy tworzę usługę, a następnie wstrzykuję usługę do kontrolera, nic nie otrzymuję:

.controller("prGPTCtrl",["$scope", "prTAService", "Restangular", function($scope, prTAService, Restangular) {

$scope.prGpts = {};
$scope.therapyAreas = {};


Restangular.setBaseUrl("resources/pr");

$scope.therapyAreas = prTAService.prTAList();

Usługa:

prServices.factory("prTAService", ["Restangular", "$q", function prTAService(Restangular, $q) {
return {
prTAList : function(therapyAreas) {
var therapyAreas = {};
Restangular.setBaseUrl("resources/pr");
Restangular.all("/ta/tas").getList().then(function(tas) {
therapyAreas = tas;
return therapyAreas;
}
);
}
};
}]);

Widzę, że jest on wywoływany w Chrome Debugger ... podejrzewam, że jest to związane z obietnicami (których tak naprawdę "nie dostaję").

Aktualizacja:

Działa to jako usługa:

prServices.factory("prTAService", ["Restangular", "$q", function prTAService(Restangular, $q) {
return {
prTAList : function(therapyAreas) {
Restangular.setBaseUrl("resources/pr");
return Restangular.all("/ta/tas").getList();
}
};
}]);

I działa to, gdy je nazywamy, nie jestem pewien, co tu zyskuję!

prTAService.prTAList().then(function(tas) {
$scope.therapyAreas = tas;
});

pozdrowienia

ja

Odpowiedzi:

0 dla odpowiedzi № 1

Usługa musi zwrócić obietnicę, a kontroler będzie obsługiwał zwrot, ponieważ jest to asynchroniczne. Robisz to dobrze w ostatniej części:

prTAService.prTAList().then(function(tas) {
$scope.therapyAreas = tas;
});