I am trying to export an Service from one of my modules but i only get the following error:

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相关问答推荐

angular:从模板中的可观察数组获取随机元素

*ngFor循环中令人困惑的Angular 行为

Ionic 5角形共享两个模块之间的组件

如何在init为FALSE时以Angular 初始化主拇指擦除器-Swiper 11.0.6Angular 17 SSR

父母和子元素在17号角不保持同步

Component RegisterComponent模板出现Angular 错误

Angular Http 拦截器 - 修改标头会导致 CORS

在生产模式下使用带Angular 的 livekit

VSCode 调试器空白页面并在使用 VS Code 1.76.1 和 Chrome 111 启动时加载

在ngOninit方法中直接VS初始化属性

Angular 在关闭另一个对话框后打开另一个对话框的最佳做法是什么?

iss 声明无效 Keycloak

Aws 代码部署在 BeforeBlockTraffic 步骤失败,即使在更新策略后也会超时

as和let之间的异步管道区别

ngx-bootstrap modal:如何从模态中获取返回值?

如何在angular 5 中获取基本网址?

如何处理解析器中的错误

Angular2 Base64 清理不安全的 URL 值

实现autocomplete功能

来自 chokidar (C:\) 的错误:错误:EBUSY:资源繁忙或锁定,lstat 'C:\DumpStack.log.tmp