AngularJS transformResponse
Dans angularjs ressource, je voudrais convertir mes données json en JS objets
//Objet complexe avec l'héritage de la chaîne d' la fonction de Voiture(année, marque){ c'.faire = faire; c'.année = année; } var carResource = $de ressources("/api/voiture/id", {id: '@id'}, { obtenir: { method: 'GET', transformResponse: function(data, headersGetter){ de retour de new Voiture(de données.faire des, données.année); } } } )
Cependant, cela ne semble pas être le cas
Ce que je reçois est de retour d'une $resource
objet ce qui signifie que les propriétés make
et year
sont correctement définies, toutefois, le prototype de l'objet retourné points de $resource
Est-il un moyen où je peux la carte de mes données json directement à mes propres objets?
Ou devrai-je écrire mon propre "ressource" de la mise en œuvre?
source d'informationauteur Mr Hyde
Vous devez vous connecter pour publier un commentaire.
transformResponse
est exécuté sur$http
niveau.Lorsque vous personnalisez $ressource actions avec configuration personnalisé, cet objet est réellement passé sur le sous-jacent
$http
service. Donc, si vous spécifiez untransformResponse
rappel, il sera exécuté sur$http
niveau, et les résultats de votre transformation sera passé sur le dos de l' $ressource.$service des ressources pour instancier un nouvel objet à partir de vos données de réponse (ce qui est déjà transformé par la
transformResponse
de rappel) et ce nouvel objet est une instance de l' $ressource elle-même.Donc, votre
car
objet sera être une instance de laCar
mais seulement pour un moment, jusqu'à ce que ses propriétés sont copiés dans un nouveau$resource
objet.Voici une vision simpliste du processus:
Car
)De toute façon, je ne recommande pas de décoration ou d'étendre le $service de ressources, car il est plus simple à écrire votre propre mise en œuvre à l'aide de $service http.