2017-05-19 5 views
3

私は次のエラー私はAppModule、AppCommonModuleとCustomModuleAを持って角度2 ERROR ManagersService私

ERROR in Cannot determine the module for class ManagersService in C:/Test/src/app/shared/common/managers/managers.service.ts! Add ManagersService to the NgModule to fix it. 

を取得しています使用してngのビルド-prodを構築しようとしています。 ManagersServiceはAppCommonModuleにあります。 CustomModuleAには、AppCommonModuleのManagersComponent(このコンポーネントはManagersServiceを使用)を使用するルートがあります。 AppCommonModuleはAppModuleとCustomModuleAの両方でインポートされます

私はAppCommonModuleプロバイダにサービスを追加しました。私はここで紛失しているものを理解していません。

注:ngサービスでは、これは魅力的です。エラーはありません。

これは、これはAppCommonModule

@NgModule({ 
    imports: [ 
     FormsModule, 
     ReactiveFormsModule   
    ], 
    declarations: [ 
     ManagersComponent   
    ], 
    providers: [ 
     ManagersService, 
    ], 
    exports: [  
     ManagersComponent, 
    ] 
}) 

であり、これは、これはCustomAModuleRouting

あるCustomModuleA

@NgModule({ 
    imports: [ 
     CommonModule, 
     FormsModule, 
     HttpModule, 
     ModalModule, 
     TabsModule, 
     TooltipModule, 
     AppCommonModule,   
    ], 
    declarations: [ 
     CompA  
    ], 
    providers: [ 
     SomeOtherService 
    ] 
}) 

export class CustomModuleA { } 

ある

@Component({ 
    templateUrl: './managers.component.html', 
    providers: [ManagersService] 
}) 
export class ManagersComponent extends AppComponentBase { 
    @ViewChild('createOrEditManagerModal') createOrEditManagerModal: CreateOrEditManagerModalComponent; 

    constructor(public managersService: ManagersService) { 
    } 

をAppCommonModuleに属するManagersComponentあります

NgModule({ 
    imports: [ 
     RouterModule.forChild([ 
      { 
       path: '', 
       children: [      
        { 
         path: 'compA', 
         component: CompA,      
        },      
        { 
         path: 'managers', 
         component: ManagersComponent,       
        }, 
       ] 
      } 
     ]) 
    ], 
    exports: [ 
     RouterModule 
    ] 
}) 
+0

ここで少しビットコードを参考にしてください。 – Ajax

+0

初期の質問を編集しました。ありがとう – pantonis

答えて

4

AppCommonModuleにインポートが表示されませんが、ManagersServiceを含む2つのファイルがあり、src/app/shared/common/managers/managers.service.tsではなく、 。違法コピーファイルを削除すると、問題が解決されます。

--prodスイッチは、見つかったすべての.tsファイルをコンパイルしようとするAOTコンパイルをトリガします。 ng serveはJITコンパイルを使用しているため、そこに問題が現れません。