Zunächst einmal eine modifizierte Version Ihres Dienstes.
a)
var app = angular.module('app',[]);
app.factory('ExampleService',function(){
return {
f1 : function(world){
return 'Hallo' + world;
}
};
});
Dies gibt ein Objekt zurück, hier gibt es nichts Neues.
Nun der Weg, um dies aus der Konsole zu erhalten ist:
b)
var $inj = angular.injector(['app']);
var serv = $inj.get('ExampleService');
serv.f1("Welt");
c)
Eines der Dinge, die Sie dort zuvor gemacht haben, war anzunehmen, dass der app.factory Ihnen die Funktion selbst oder eine neue Version davon zurückgibt. Das ist jedoch nicht der Fall. Um einen Konstruktor zu erhalten, müssten Sie entweder Folgendes tun:
app.factory('ExampleService',function(){
return function(){
this.f1 = function(world){
return 'Hallo' + world;
}
};
});
Dies gibt einen ExampleService Konstruktor zurück, auf den Sie als nächstes ein 'new' anwenden müssen.
Oder alternativ,
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hallo' + world;
};
});
Dies gibt ein new ExampleService() bei der Injektion zurück.