Zunächst eine modifizierte Version Ihres Dienstes.
ein )
var app = angular.module('app',[]);
app.factory('ExampleService',function(){
return {
f1 : function(world){
return 'Hello' + world;
}
};
});
Dies gibt ein Objekt zurück, hier nichts Neues.
Nun ist der Weg, dies von der Konsole zu bekommen, ist
b)
var $inj = angular.injector(['app']);
var serv = $inj.get('ExampleService');
serv.f1("World");
c)
Eines der Dinge, die Sie dort zuvor getan haben, war anzunehmen, dass die app.factory Ihnen die Funktion selbst oder eine neue Version davon zurückgibt. Welches ist nicht der Fall. Um einen Konstruktor zu erhalten, müssten Sie entweder tun
app.factory('ExampleService',function(){
return function(){
this.f1 = function(world){
return 'Hello' + world;
}
};
});
Dies gibt einen ExampleService-Konstruktor zurück, für den Sie als Nächstes ein 'neues' ausführen müssen.
Oder alternativ,
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hello' + world;
};
});
Dies gibt beim Injection neuen ExampleService () zurück.
angular.element('*[ng-app]').injector()
sollte in allen Fällen funktionieren.