Primeiro de tudo, uma versão modificada do seu serviço.
a )
var app = angular.module('app',[]);
app.factory('ExampleService',function(){
return {
f1 : function(world){
return 'Hello' + world;
}
};
});
Isso retorna um objeto, nada de novo aqui.
Agora, a maneira de obter isso do console é
b)
var $inj = angular.injector(['app']);
var serv = $inj.get('ExampleService');
serv.f1("World");
c)
Uma das coisas que você estava fazendo lá anteriormente era assumir que o app.factory retorna a função em si ou uma versão nova dela. O que não é o caso. Para obter um construtor, você teria que fazer
app.factory('ExampleService',function(){
return function(){
this.f1 = function(world){
return 'Hello' + world;
}
};
});
Isso retorna um construtor ExampleService no qual você precisará fazer um 'novo'.
Ou alternativamente,
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hello' + world;
};
});
Isso retorna novo ExampleService () na injeção.
angular.element('*[ng-app]').injector()
deve funcionar para todos os casos.