2017-07-12 8 views
1

私はこのguideを以下、以下のモジュールを作成したシンボル値を解決遭遇角度モジュールエラーは、静的

@NgModule({ 
    imports: [ 
     CommonModule, 
     MatchMediaModule.forRoot() // <-- 
    ], 
}) 
export class CoreModule { } 

ng serveを実行しています次のエラーがスローされます。

エラーのエラーが発生し、シンボル値を静的に解決しました。 関数 'MatchMediaModule'を呼び出すと、関数呼び出しはサポートされません。 にシンボルCoreModuleを解決する、 /Users/alex/www/mdello-port/src/app/core/core.module.tsにシンボルCoreModuleを解決する、 エクスポートされた関数を参照して、機能またはラムダの交換を検討/Users/alex/www/mdello-port/src/app/core/core.module.ts

しかしは、アプリを再コンパイルするには、CLIを引き起こして、いくつかのマイナーな変更を行った後、すべてがなしで実行します問題。

forRoot()メソッドを削除し、サービスを直接提供することも有効です。それにもかかわらず、私は上記モジュールの遅延ロード中に複数のシングルトンインスタンスの作成を防御する利点を保持したいと思います。

上記の利点を損なうことなくこのエラーを修正する方法はありますか?次のようにforRoot()を書き換え

答えて

1

は、問題を解消しました。問題はforRoot()方法の副作用によって引き起こされたよう

@NgModule({ 
    // ... 
}) 
export class MatchMediaModule { 

    // ** REMOVED ** 

    // The method is used for providing the 
    // feature module's providers only ONCE 
    static forRoot(): ModuleWithProviders { 

     // ** REMOVED ** 

     return { 
      ngModule: MatchMediaModule, 
      providers: [MatchMediaService], 
     }; 
    } 

} 

は思えます。

+0

その仕事はなぜあなたのアイデアですか?実際、私は新しいng4です。 – developerbhuwan

関連する問題