Ho un $resource
la cui API restituirà sempre alcuni dati che devono essere ripuliti prima di passare al livello di presentazione. Nello specifico, è .NET che restituisce oggetti Date nel delizioso formato '/Date(...)/'
.
Non voglio dover scrivere una richiamata ogni volta che chiamo .query()
o .get()
. Esiste un modo per estendere la risorsa con un callback che viene richiamato sui metodi REST che aggiornano le proprietà dell'istanza o aggiungendo una sorta di $watch
che viene generato quando la proprietà della data cambia? Fondamentalmente qualcosa che accadrà per ogni istanza di questo $resource
.
angular.module('myAppServices', ['ngResource'])
.factory('Participant', ['$resource', function ($resource) {
var res = $resource('api/url/participants/:id', { id: '@id' });
// This obviously doesn't work, but something kinda like this?
res.prototype.$watch(this.FieldName, function(newVal, oldVal) {
if (needsCleaning(newVal.fieldName) {
this.FieldName = cleanupField(newVal);
}
};
});
puoi provare questo. 'var partecipante = $ risorsa ('api/url/partecipanti /: id', {id: '@id'}); var commonCallback = function() { \t // all'interno di questo callback, il partecipante è il modello popolato, \t // è possibile utilizzare l'oggetto partecipante per eseguire la logica di formattazione. \t // Quindi, se si desidera salvare l'oggetto partecipante fare \t //participant.$save(); Si prega di non i nomi dei metodi con prefisso $ che diventano disponibili per le istanze delle risorse. } res.query (commonCallback) o res.get ({..}, commonCallback) ' – rajkamal