2015-08-25 20 views
6

diyorum, iki modüle sahipangularjs bağımlılık enjeksiyon

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

Ben foo.b demek modülünde bir hizmeti :

foo.a adresindeki denetleyicilerden birinde kullanmak istiyorum. çalışıyor

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

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

: Ben ne yaptım

basit bağımlılık enjeksiyon olduğunu. o modülün bir için bir bağımlılık olarak ilan olsa bile

Sorularım

  1. nasıl modül foo.b gelen "yardımcı" hizmetini alıyorum var?
  2. Daha sonraki bir aşamada kırılacak mı?
  3. Doğruysa, bu iyi bir uygulama mı?
+0

Korkarım ki hata alacaksınız: Hata: [$ injector: unpr] Bilinmeyen sağlayıcı: helperProvider <- helper. Ya da sorununuzu göstermek için bir JSFiddle koyun. – Joy

+0

sorunu, bu modülü bir bağımlılık [plunker] (http://plnkr.co/edit/jAvtSPQWJjTPNd40YvVA?p=preview) olarak eklemeden başka bir modülden kullanabileceğim –

cevap

7

İhtiyacınız olan fabrikayı, her iki modülde de üçüncü bir modülde koyun. İki orijinal modülünüzün üçüncü modüle bağımlılığı var.

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); 
İlgili konular