En primer lugar, una versión modificada de su servicio.
una )
var app = angular.module('app',[]);
app.factory('ExampleService',function(){
return {
f1 : function(world){
return 'Hello' + world;
}
};
});
Esto devuelve un objeto, nada nuevo aquí.
Ahora la forma de obtener esto de la consola es
b)
var $inj = angular.injector(['app']);
var serv = $inj.get('ExampleService');
serv.f1("World");
C )
Una de las cosas que estaba haciendo allí anteriormente era suponer que app.factory le devuelve la función en sí o una versión nueva. Que no es el caso. Para obtener un constructor tendrías que hacer
app.factory('ExampleService',function(){
return function(){
this.f1 = function(world){
return 'Hello' + world;
}
};
});
Esto devuelve un constructor ExampleService en el que luego tendrá que hacer un 'nuevo'.
O alternativamente,
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hello' + world;
};
});
Esto devuelve el nuevo ExampleService () en la inyección.
angular.element('*[ng-app]').injector()
debería funcionar para todos los casos.