Прежде всего, модифицированная версия вашего сервиса.
а)
var app = angular.module('app',[]);
app.factory('ExampleService',function(){
return {
f1 : function(world){
return 'Hello' + world;
}
};
});
Это возвращает объект, ничего нового здесь.
Теперь способ получить это из консоли
б)
var $inj = angular.injector(['app']);
var serv = $inj.get('ExampleService');
serv.f1("World");
в)
Одна из вещей, которую вы делали ранее, заключалась в том, что app.factory возвращает вам саму функцию или ее новую версию. Что не так. Чтобы получить конструктор, вам нужно будет либо сделать
app.factory('ExampleService',function(){
return function(){
this.f1 = function(world){
return 'Hello' + world;
}
};
});
Это возвращает конструктор ExampleService, который вы затем должны будете выполнить 'new'.
Или, в качестве альтернативы,
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hello' + world;
};
});
Это возвращает новый ExampleService () при внедрении.
angular.element('*[ng-app]').injector()
должно работать для всех случаев.