Tout d'abord, une version modifiée de votre service.
une )
var app = angular.module('app',[]);
app.factory('ExampleService',function(){
return {
f1 : function(world){
return 'Hello' + world;
}
};
});
Cela renvoie un objet, rien de nouveau ici.
Maintenant, le moyen d'obtenir cela à partir de la console est
b)
var $inj = angular.injector(['app']);
var serv = $inj.get('ExampleService');
serv.f1("World");
c)
L'une des choses que vous faisiez auparavant était de supposer que l'application.factory vous renvoie la fonction elle-même ou une nouvelle version de celle-ci. Ce qui n'est pas le cas. Pour obtenir un constructeur, vous devez soit faire
app.factory('ExampleService',function(){
return function(){
this.f1 = function(world){
return 'Hello' + world;
}
};
});
Cela renvoie un constructeur ExampleService sur lequel vous devrez ensuite faire un «nouveau».
Ou bien,
app.service('ExampleService',function(){
this.f1 = function(world){
return 'Hello' + world;
};
});
Cela renvoie un nouveau ExampleService () lors de l'injection.
angular.element('*[ng-app]').injector()
devrait fonctionner pour tous les cas.