2017-02-28 4 views
0

Ich habe gerade meine Angular 2-Anwendung aktualisiert, um Webpack für die Minification zu verwenden, also musste ich viele Strukturänderungen vornehmen, aber ich dachte, dass ich jetzt gut war.DI Fehler in meiner neuen Webpack-Anwendung

Ich habe tatsächlich viele Ebenen auf die Anwendung für die Module, wie folgt aus:

  • App (mit einigen Komponenten auf dieser Ebene wie login)
    • Admin (mit mehreren Komponenten wie Homepage, Benutzer)
    • Demo (mit Komponenten wie Anmeldung)

Also ich habe für jedes Modul ein Routing-Modul. Für App funktioniert, lande ich auf der Anmeldeseite von Ausfall- und alles wie erwartet funktioniert, seine Route ist wie:

  { 
       path: 'login', 
       component: LoginComponent, 
       data: { 
        name: 'login' 
       } 
      }, 

Aber wenn ich möchte auf einige Komponenten von den anderen Modulen gehen, wie wenn ich anmelden, ich soll/admin gehen, die mich auf dem HomepageComponent im AdminModule gehen macht, die wie in der App-Routing-Modul festgelegt ist:

  { 
       path: 'admin', 
       loadChildren:() => new Promise(resolve => { 
                (require as any).ensure([], require => { 
                 resolve(require('./admin/admin.module').AdminModule) 
                }) 
               }) 
      }, 

Aber wenn ich auf ein anderes Modul landen bekomme ich diesen Fehler:

Error: Uncaught (in promise): Error: DI Error 

at NoProviderError.ZoneAwareError (zone.js:811) 

at NoProviderError.BaseError [as constructor] (errors.js:25) 

at NoProviderError.AbstractProviderError [as constructor] (reflective_errors.js:64) 

at new NoProviderError (reflective_errors.js:126) 

at ReflectiveInjector_._throwOrNull (reflective_injector.js:492) 

at ReflectiveInjector_._getByKeyDefault (reflective_injector.js:531) 

at ReflectiveInjector_._getByKey (reflective_injector.js:463) 

at ReflectiveInjector_.get (reflective_injector.js:332) 

at AppModuleInjector.NgModuleInjector.get (ng_module_factory.js:146) 

at CompiledTemplate.proxyViewClass.AppView.injectorGet (view.js:165) 

at CompiledTemplate.proxyViewClass.DebugAppView.injectorGet (view.js:593) 

at ElementInjector.get (element_injector.js:34) 

at AdminModuleInjector.get (/AdminModule/module.ngfactory.js:216) 

at AdminModuleInjector.get (/AdminModule/module.ngfactory.js:221) 

at AdminModuleInjector.getInternal (/AdminModule/module.ngfactory.js:306) 

Ich habe definitiv keine Ahnung, was hier falsch sein kann. Hast du irgendeinen Anhaltspunkt dafür, warum es passieren könnte?

+0

Ich möchte auch hinzufügen, dass die in den Komponenten verwendeten Serviceklassen immer in den Modulanbietern sind, die dann in den Komponentenkonstruktor eingefügt werden – Guigui

Antwort

0

Okay, irgendwie musste ein externer Bibliotheksdienst in den App-Modul-Providern enthalten sein, aber es funktionierte vorher, ohne es zu tun.