/ / Créer un service autour de Restangular dans AnglarJS ne renvoie pas array - angularjs, restangular

Créer un service autour de Restangular dans AnglarJS ne renvoie pas array - angularjs, restangular

Je suis nouveau sur AngularJS et Restangular. Mais en tant que bon citoyen, je pensais essayer de créer certains services.

Tant que cela fonctionne et que je reçois un tableau qui remplit une liste déroulante:

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

Mais lorsque je crée un service, puis l'injecte dans le contrôleur, je ne reçois rien:

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

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


Restangular.setBaseUrl("resources/pr");

$scope.therapyAreas = prTAService.prTAList();

Un service:

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;
}
);
}
};
}]);

Je le vois être appelé dans Chrome Debugger ... Je suppose que cela est lié à des promesses (que je ne "comprends pas vraiment").

Mettre à jour:

Cela fonctionne comme un service:

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

Et ça marche quand on l’appelle, je ne sais pas ce que je gagne ici!

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

Cordialement

je

Réponses:

0 pour la réponse № 1

Le service doit renvoyer la promesse et le contrôleur gérera le retour car il s'agit d'une transaction asynchrone. Vous le faites bien dans la dernière partie là-bas:

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