Mam $resource
którego API zawsze zwróci niektóre dane, które należy oczyścić przed wejściem do warstwy prezentacji. W szczególności jest to .NET zwracające obiekty Date w uroczym formacie '/Date(...)/'
.
Nie chcę pisać oddzwonienia za każdym razem, gdy dzwonię pod numer .query()
lub .get()
. Czy istnieje sposób na rozszerzenie zasobu o wywołanie zwrotne, które jest wywoływane w przypadku metod REST, które aktualizują właściwości instancji, lub poprzez dodanie pewnego rodzaju obiektu $watch
, który zostanie zwolniony po zmianie właściwości daty? Zasadniczo coś, co stanie się dla każdego wystąpienia tego $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);
}
};
});
możesz spróbować. 'var uczestnik = $ zasób ('api/url/participants /: id', {id: '@id'}}); var commonCallback = function() { \t // wewnątrz tego wywołania zwrotnego uczestnik jest zapełnionym modelem, \t // możesz użyć obiektu uczestnika do wykonania logiki formatowania. \t // Następnie, jeśli chcesz zapisać obiekt uczestnika, wykonaj \t //participant.$save(); Nie używaj nazw metod z przedrostkiem $, które będą dostępne dla instancji zasobów. } res.query (commonCallback) lub res.get ({..}, commonCallback) ' – rajkamal