3

我一直在阅读 angular 9 文档,它指出您可以使用 provideIn: 'platform' 在两个 Angular 应用程序之间共享单例服务,但我找不到一个好的示例,并且文档不清楚如何做。

假设我有一个带有 service1 的 application1 和一个带有 service2 的 application2,并且我想以某种方式从 service1 调用 service2 的方法。

我怎样才能打出那个“电话”?我应该以某种方式要求或将 application2 导入到 application1 中吗?

4

1 回答 1

1

如果您真的需要它运行并且不关心它是否漂亮,您可以随时将其绑定到“窗口”

import { Injectable } from '@angular/core';
@Injectable({
    providedIn: 'platform'
})
export class MySharedService {
    private _value = 0;
    constructor() {
        if (!!(<any>window).sharedService) return (<any>window).sharedService;
            (<any>window).sharedService = this;
    }
    
}

通过这种方式,您可以确保您的服务只会被实例化一次,并且您的模块实际上将能够共享它。

于 2021-03-06T12:31:51.183 回答