angular:如何从 npm 包中导出服务

Mat*_*Eon 1 npm angular

我的 Angular 2 包中有一项服务,我想用这些行放在 NPM 上:

public showModal: Subject<any> = new Subject<any>();
public $showModal = this.showModal.asObservable();

public closeModal: Subject<any> = new Subject<any>();
public $closeModal = this.closeModal.asObservable();

public configModal: Subject<any> = new Subject<any>();
public $configModal = this.configModal.asObservable();
Run Code Online (Sandbox Code Playgroud)

主题变量的使用方式如下:myService.configModal(new ModalConfig()); Observables 与订阅一起使用来更新我的组件数据,显示或隐藏它。

这是我导出我的课程的 index.ts :

import {NgModule} from "@angular/core";
import {CommonModule} from "@angular/common";
import {ModalComponent} from "./lib/modal.component";
import {ModalService} from "./lib/modal.service";
@NgModule({
    imports: [CommonModule],
    declarations: [ModalComponent],
    providers: [ModalService],
    exports: [ModalComponent],
//  bootstrap: [ModalComponent]
})
export class ModalModule {}
Run Code Online (Sandbox Code Playgroud)

如何在另一个应用程序中访问 ModalService?我希望我的服务也成为单例,所以我不能导出它并在我的组件中提供服务

Mat*_*Eon 5

几天后,我找到了解决问题的方法。我只需要添加一个导出语句:

import {NgModule} from "@angular/core";
import {CommonModule} from "@angular/common";
import {ModalComponent} from "./lib/modal.component";
import {ModalService} from "./lib/modal.service";

export {ModalService} from "./lib/modal.service";

@NgModule({
    imports: [CommonModule],
    declarations: [ModalComponent],
    providers: [ModalService],
    exports: [ModalComponent],
//  bootstrap: [ModalComponent]
})
export class ModalModule {}
Run Code Online (Sandbox Code Playgroud)