Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
中的Angular 2错误无法确定类ManagerService i的模块_Angular_Angular2 Services_Angular2 Modules - Fatal编程技术网

中的Angular 2错误无法确定类ManagerService i的模块

中的Angular 2错误无法确定类ManagerService i的模块,angular,angular2-services,angular2-modules,Angular,Angular2 Services,Angular2 Modules,当尝试使用ng build-prod进行构建时,我遇到了以下错误 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. 我有AppModule、AppCommonModule和CustomModuleA。M

当尝试使用ng build-prod进行构建时,我遇到了以下错误

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.
我有AppModule、AppCommonModule和CustomModuleA。ManagerService位于AppCommonModule中。CustomModuleA有一个使用AppCommonModule的ManagerComponent(此组件使用ManagerService)的路由。AppCommonModule同时在AppModule和CustomModuleA中导入

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

export class CustomModuleA { }
我已将该服务添加到AppCommonModule提供程序中。我不明白我在这里错过了什么

注意:使用ng serve,这就像一个符咒。没有错误

这是属于AppCommonModule的ManagerComponent

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

    constructor(public managersService: ManagersService) {
    }
@NgModule({
    imports: [
        FormsModule,
        ReactiveFormsModule        
    ],
    declarations: [
        ManagersComponent        
    ],
    providers: [
        ManagersService,
    ],
    exports: [      
        ManagersComponent,
    ]
})
这是AppCommonModule

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

    constructor(public managersService: ManagersService) {
    }
@NgModule({
    imports: [
        FormsModule,
        ReactiveFormsModule        
    ],
    declarations: [
        ManagersComponent        
    ],
    providers: [
        ManagersService,
    ],
    exports: [      
        ManagersComponent,
    ]
})
这是CustomModuleA

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

export class CustomModuleA { }
这是CustomAModuleRouting

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

我没有在AppCommonModule中看到您的导入,但我猜您有两个包含ManagerService的文件,并且只导入其中一个(不是src/app/shared/common/managers/managers.service.ts)。删除有问题的dupe文件将解决您的问题


--prod开关触发AOT编译,AOT编译将尝试编译找到的每个.ts文件。ng serve使用JIT编译,这就是为什么问题不会在那里表现出来。

在最初的问题中,一点代码片段会很有帮助。谢谢