2017-02-28 18 views
0

我剛剛更新了我的Angular 2應用程序以使用Webpack進行縮小,所以我必須進行很多結構更改,但我認爲我現在已經很好了。我的新Webpack應用程序出現DI錯誤

我確實有對模塊的應用多層次的,是這樣的:(在此級別一樣登錄一些組件)

  • 聯繫

    • 應用(與幾個組件,如網頁,用戶)
    • 演示(與像註冊部件)

所以我有每個模塊的路由模塊。對於應用它的作品,我降落在登錄頁面默認情況下,一切都正常工作,它的路線是這樣的:

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

但是,如果我想去一​​些部件來自其他模塊,當我登錄一樣,我應該去/管理這點讓我走在HomepageComponent已被設定這樣的應用路由模塊在AdminModule:

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

但是,當我降落在其他模塊上我得到這個錯誤:

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) 

我絕對不知道這裏有什麼可能是錯的。你爲什麼會發生這種情況?

+0

我想補充一點,組件中使用的服務類總是在模塊提供程序中,然後放入組件構造函數 – Guigui

回答

0

好的,不知何故,外部庫服務必須包含在應用程序模塊提供程序中,但它之前沒有做到這一點。

相關問題