2017-02-28 9 views
0

Angular 2アプリケーションがWebpackを使用して縮小されたため、多くの構造変更を加えなければならなかったが、今は良いと思った。ホームページのようないくつかのコンポーネント、ユーザーと(新しいWebpackアプリケーションでDIエラーが発生する

  • アプリ(一部のコンポーネントでログインのようなこのレベルでの)
    • 管理者:

      は、私が実際にこのようなモジュールのためのアプリケーションの多くのレベルを持っています)

    • 登録のような構成要素とデモ()

私は各モジュールにルーティングモジュールを持っています。アプリにとっては、私は、デフォルトでは、ログインページに着陸し、すべてが期待どおりに動作しますが、そのルートが似ている作品:

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

しかし、私は、私がログインしたときのような他のモジュールからの一部のコンポーネントに行きたい場合は、私は、私はアプリのルーティングモジュールでそのように設定されているAdminModuleにHomepageComponentに行かせる/ adminに行くことになってる:

  { 
       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

さて、どういうわけか、外部ライブラリサービスがアプリモジュールプロバイダに組み込まれていなければなりませんでしたが、それをやっていないうちに以前は機能していました。

関連する問題