2015-08-25 14 views
6

muszę powiedzieć dwa moduły:angularjs zależność wtrysku

  1. foo.a
  2. foo.b

oraz moduł aplikacji:

angular.module("foo", ["foo.a","foo.b"]) 

Mam usług w module foo.b powiedzenia :

angular.module("foo.b", []) 

    angular.module("foo.b").factory("helper",helperFn); 

które chcę użyć w jednym z moich kontrolerów w foo.a.

Co mam zrobić zastrzyk zależność jest prosta:

angular.module("foo.a", []); 

angular.module("foo.a") 
     .controller("MyController",["helper",MyControllerFn]); 

której pracuje.

Moje pytania są

  1. Jak mam coraz „pomocnika” usługi z modułu foo.b mimo że nie jest zadeklarowana jako zależność dla modułu o?
  2. Czy pęknie na późniejszym etapie?
  3. Jeśli jest prawidłowy, czy jest to dobra praktyka?
+0

Obawiam się, że wystąpi błąd "Błąd: [$ injector: unpr] Nieznany dostawca: helperProvider <- helper'. Lub umieść JSFiddle w celu zilustrowania twojego problemu. – Joy

+0

Problem polega na tym, że mogę używać fabryki z innego modułu bez dodawania tego modułu jako zależności [plunker] (http://plnkr.co/edit/jAvtSPQWJjTPNd40YvVA?p=preview) –

Odpowiedz

7

Umieść fabrykę, do której potrzebujesz dostępu w obu modułach w trzecim module. Niech twoje dwa oryginalne moduły wprowadzą zależność do trzeciego modułu.

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); 
Powiązane problemy