j'avoir un tel code de travail:
service (usine?):
myApp.factory('MyService', ['$q','$resource', 'MyResource',
function ($q, $resource, MyResource) {
return {
getRoles: function() {
return MyResource.getRoles(); //MyResource makes API calls using $resource
} } });
Controller:
$scope.Roles = MyService.getRoles();
$scope.Roles.$promise.then(function() { $scope.RolesCount = $scope.Roles.length; });
Ce que je voudrais faire est de créer une telle fonction dans MyService qui renverra le nombre de rôles une fois getRoles est résolu afin que je puisse l'utiliser dans le contrôleur comme ceci:
$scope.RolesCount = MyService.getRolesCount();
puis en html
{{RolesCount}}
Malheureusement, je ne sais pas comment faire cela depuis ma méthode getRolesCount() doit retourner quelque chose que je ne peux pas utiliser promise.then $() à l'intérieur MyService . Je vais essayer de mettre à jour le titre de ma question une fois que je trouverai quelque chose de plus précis.
Vous devez redéfinir l'action getRoles avec l'option 'actions' et fournir transformResponse, quelque chose comme ceci. – estus
Yeap mais cela ressemble à manipuler sur la couche Resource/Repository. Que dois-je faire si je veux traiter les données renvoyées sur la couche Service (n'est-ce pas le cas?) Et renvoyer ensuite le résultat au contrôleur (comme référence d'objet de la même manière que $ resource le fait)? – Kostrzak
Oui, un service est l'endroit le plus approprié. Mais dans votre cas, aucune de ces approches ne fonctionne car «alors» ne transforme pas seulement la réponse, mais déballe sa valeur. De plus, vous n'avez pas vraiment besoin de faire cela avec des ressources. – estus