angular - 无法从模块 'it was neither declared nor imported' 导出服务

标签 angular angular2-services

<分区>


我正在尝试从我的模块之一导出服务,但我只收到以下错误:

ERROR Error: Uncaught (in promise): 
Error: Can't export value ConfirmDialogService from SharedModule as it was neither declared nor imported!

我的模块如下:

import { NgModule }                 from "@angular/core";
import { CommonModule }             from "@angular/common";
import { FormsModule }              from "@angular/forms";
import { RouterModule }             from "@angular/router";
import { MaterialModule }           from "@angular/material";

import { ConfirmDialogComponent }       from './confirm-dialog/confirm-dialog.component';
import { ConfirmDialogService }         from './confirm-dialog/confirm-dialog.service';

@NgModule({
    imports: [
        RouterModule,
        CommonModule,
        MaterialModule,
        FormsModule
    ],
    providers: [
        ConfirmDialogService
    ],
    declarations: [
        ConfirmDialogComponent 
    ],
    exports: [
        ConfirmDialogComponent 
        ConfirmDialogService
    ]
})
export class SharedModule {}

文件确实存在并且在 TS 中被正确引用,但在运行应用程序时出现错误。

最佳答案

您不需要在exports 中列出服务,您可以只列出组件、指令和管道。对于服务,providers 是相关的,但除此之外,TypeScript 导入就足够了。

关于angular - 无法从模块 'it was neither declared nor imported' 导出服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44133513/

相关文章:

html - 添加上下文路径 Angular 2

html - 当鼠标悬停在 html/CSS/angular/bootstrap 中时显示树的完整长文本行(嵌套的 HTML 列表)

angular - 当仅知道名称时从 Injector 接收管道

angular - 如何在 Angular 2 中集成 JWplayer

javascript - 为什么刷新页面后我的项目发生了变化?

angularfire2 增加值(value)的最佳方式?

Angular 5 : how can i use click event in item list?

javascript - Angular 2 - 全局错误处理程序仅在未捕获错误时执行

angular - 订阅 Observable 与订阅 Subject

jquery - 将 Angular 2 组件附加到特定 DOM