AngularJS: die Antwort auf "transform" in $Ressource unter Verwendung eines benutzerdefinierten service

Ich versuche zu schmücken, die zurückgegebenen Daten aus einer eckig $Ressource mit Daten aus einer benutzerdefinierten Dienst.
Mein code ist:

angular.module('yoApp')
  .service('ServerStatus', ['$resource', 'ServerConfig', function($resource, ServerConfig) {
    var mixinConfig = function(data, ServerConfig) {
      for ( var i = 0; i < data.servers.length; i++) {
        var cfg = ServerConfig.get({server: data.servers[i].name});
        if (cfg) {
          data.servers[i].cfg = cfg;
        }
      }
      return data;
    };

    return $resource('/service/server/:server', {server: '@server'}, {
      query: {
        method: 'GET',
        isArray: true,
        transformResponse: function(data, header) {
          return mixinConfig(angular.fromJson(data), ServerConfig);
        }
      },
      get: {
        method: 'GET',
        isArray: false,
        transformResponse: function(data, header) {
          var cfg = ServerConfig.get({server: 'localhost'});
          return mixinConfig(angular.fromJson(data), ServerConfig);
        }
      }
  });
}]);

Es scheint, ich mache etwas falsch über dependency injection. Die zurückgegebenen Daten aus der ServerConfig.get() ist markiert als ungelöst.
Ich habe diese Arbeit in einem controller, wo ich die transformation mit

ServerStatus.get(function(data) {$scope.mixinConfig(data);});

Aber ich würde lieber die Dekoration in den Dienst. Wie kann ich diese Arbeit machen?

Hat die transformResponse Funktion aufgerufen? Welche version von Angular verwenden Sie? Finden Sie ein minimalistisches Beispiel für die Implementierung von response-Dekoration hier: jsfiddle.net/YxTNL/1
Vielen Dank für Ihre Antwort. Ich habe herausgefunden, eine Lösung, und veröffentlicht es auf jsfiddle.net/maddin/7zgz6 Was ich wantet zu erreichen, ist es nicht möglich, transformResponse. Ich denke, ich Schreibe eine richtige Antwort...

InformationsquelleAutor Maddin | 2014-02-21

Schreibe einen Kommentar