AngularJS injecte de l'usine à partir d'un autre module dans un fournisseur de
J'ai une usine à partir d'un autre module que je voudrais injecter dans un fournisseur pour mon module, mais je continue à recevoir des inconnus fournisseur d'erreurs. Ce que je fais mal?
Ce que je voudrais injecter:
var angularSocketIO = angular.module('socketioModule', []);
angularSocketIO.factory('socketio', [
'$rootScope',
'addr',
function($rootScope, addr) {
var socket = io.connect(addr,{
'sync disconnect on unload': true
});
...
return socket;
}
]);
Où je suis en train d'injecter:
angular.module('myApp.services', ['socketioModule'])
.provider('greeter', ['socketio', function(socket) {
var salutation = 'Hello';
this.setSalutation = function(s) {
salutation = s;
}
function Greeter(a) {
this.salutation = salutation;
socket._emit('hello')
this.greet = function() {
return salutation + ' ' + a;
}
}
this.$get = function(version) {
return new Greeter(version);
};
}]);
Que les résultats de
Error: [$injector:modulerr] Failed to instantiate module myApp due to:
[$injector:modulerr] Failed to instantiate module myApp.services due to:
[$injector:unpr] Unknown provider: socketio
Vous devez vous connecter pour publier un commentaire.
Je pense, parce que tous les fournisseurs sont instancié avant que les usines et donc un fournisseur de dépendre seulement sur les autres fournisseurs.
Comme un moyen de contourner cela, je suis en utilisant le
injector
méthode deangular.module
pour créer le module.Un plunker qui devrait faire ce que vous étiez en train d'accomplir: http://plnkr.co/edit/g1M7BIKJkjSx55gAnuD2
Avis que j'ai changé aussi la méthode de fabrique. La méthode est maintenant retourner un objet
avec une méthode de connexion.
.constant('lodash', _)
Je pense que vous pouvez ajouter des dépendances via $get méthode fournisseur de: