javascript - AngularJS beroendeinjektion
Jag har sagt två moduler:
foo.afoo.b
och en applikationsmodul:
angular.module("foo", ["foo.a","foo.b"])
Jag har en tjänst i modul foo.b säg:
angular.module("foo.b", [])
angular.module("foo.b").factory("helper",helperFn);
som jag vill använda i en av mina kontroller i foo.a.
Det jag har gjort är enkel beroendeinjektion:
angular.module("foo.a", []);
angular.module("foo.a")
.controller("MyController",["helper",MyControllerFn]);
vilket fungerar.
Mina frågor är
- Hur får jag tjänsten "helper" från modulen
foo.bäven om den inte är deklarerad som ett beroende för modul a? - Kommer det att gå sönder vid ett senare tillfälle?
- Om det är korrekt, är detta en bra praxis?
Svar #1
Lägg fabriken som du behöver åtkomst till i båda modulerna i en tredje modul. Låt dina två ursprungliga moduler injicera ett beroende till den tredje modulen.
angular.module("foo", ["foo.a", "foo.b"]);
angular.module("foo.a", ["foo.c"])
.controller("MyController", ["helper", MyControllerFn]);
angular.module("foo.b", ["foo.c"]);
angular.module("foo.c")
.factory("helper", helperFn);
