首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角模块联邦和远程服务

角模块联邦和远程服务
EN

Stack Overflow用户
提问于 2022-02-02 17:16:38
回答 2查看 1.3K关注 0票数 0

我正在几个微锋中分解一个有角的网。其中一个微前端处理购物车,它有一个服务来存储已经添加的产品。我的shell微前端需要使用该服务在图标中显示汽车中有多少项,添加新项目等。

我是否可以在存储在不同微前端的微前端中使用服务?

我正在使用这个教程,但它只解释了如何路由位于另一个微前端的页面。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-02 17:57:07

我是否可以在存储在不同微前端的微前端中使用服务?

编号。代码在您的微前端是不共享的彼此之间。

您需要在存储库中创建一个库项目。这个库将在您的微型应用程序中共享。在这里,您可以创建一个服务,用于存储一些数据,并在应用程序之间共享它。

https://angular.io/guide/creating-libraries

正在使用Nx:https://nx.dev/workspace/library

票数 2
EN

Stack Overflow用户

发布于 2022-08-06 00:24:02

你可以做到这一点。

代码语言:javascript
运行
复制
// In your remote module
@NgModule({
  declarations: [],
  imports: [CommonModule],
  providers: [YourRemoteService],
})
export class YourRemoteModuleModule {
  public constructor(
    @Inject(YourRemoteService) private readonly yourRemoteService: YourRemoteService
  ) {}

  /**
   * Allows the to access YourRemoteService.
   *
   * @returns The service instance.
   */
  public getService(): YourRemoteService {
    return this.yourRemoteService;
  }
}

// In the module that wants to load a remote module/service
import { loadRemoteModule } from '@angular-architects/module-federation';
import type { LoadRemoteModuleOptions } from '@angular-architects/module-federation';

const options: LoadRemoteModuleOptions = {
  remoteEntry: // your entry
  remoteName: // your remote name
  exposedModule: // your exposed module
};

from(loadRemoteModule(options)).pipe(
  switchMap((module) => this.compiler.compileModuleAsync<YourContract>(module[YourModule])),
  map((moduleFactory) => {
   const moduleRef = moduleFactory.create(this.injector);
   const instance = moduleRef.instance;
   return instance.getService(); // Your contract
 });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70959941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档