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?
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