Sono abbastanza nuovo a angularjs
e non sono in grado di trovare alcuna documentazione o esempi per questo. Quello che sto cercando di fare è estendere un servizio di base in modo da poter utilizzare i metodi definiti nel servizio di base da altri servizi. Quindi, per esempio, dire che ho un servizio di base come segue.come posso estendere un servizio
angular.module('myServices', []).
factory('BasicService', function($http){
var some_arg = 'abcd'
var BasicService = {
method_one: function(arg=some_arg){ /*code for method one*/},
method_two: function(arg=some_arg){ /*code for method two*/},
method_three: function(arg=some_arg){ /*code for method three*/},
});
return BasicService;
}
);
Ora voglio definire un servizio esteso che si estende da quanto sopra BasicService
in modo che posso usare metodi definiti sotto il BasicService dal mio servizio esteso. Forse qualcosa di simile:
factory('ExtendedService', function($http){
var ExtendedService = BasicService();
ExtendedService['method_four'] = function(){/* code for method four */}
return ExtendedService;
}
perfetto grazie, assolutamente quello che stavo cercando. – Amyth
Ho ragione nel dire che questo è il metodo migliore se consideriamo che BasicService sia astratto? Perché in questo caso non useremo mai BasicService, solo ExtendedService, quindi va bene estenderlo letteralmente. – Floris
Questo metodo è davvero ok? Dato che i servizi sono singleton, ciò significa che la modifica su BasicService sarà permanente, quindi verrà modificato anche BasicService. Non sarebbe meglio creare una copia di BasicService e restituire la versione estesa di quella copia? – Razvan