Перш за все, модифікована версія вашої послуги.
а)
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, для якого вам доведеться зробити "новий".
Або ж,
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hello' + world;
};
});
Це повертає новий ExampleService () при ін'єкції.
angular.element('*[ng-app]').injector()
повинна працювати у всіх випадках.