【问题标题】:How to pass data from Parent app to Child app through binding parameter to the URL in Single SPA Angular?如何通过绑定参数将数据从父应用程序传递到子应用程序到 Single SPA Angular 中的 URL?
【发布时间】:2021-09-23 12:27:02
【问题描述】:

我创建了两个应用程序。一个是父应用,另一个是子应用。现在假设我在父应用中创建了一个产品组件,并在路由文件中定义了路径。

{ path: 'product/:appId', component: ProductComponent }

所以在这里我将我的子应用程序安装在产品组件中,并且在 app.component.ts 文件中我喜欢使用路由器导航到产品组件,例如:

ngOnInit(): void {
  this.router.navigate(['/product', 'mockApp1']);
}

我的父应用在端口:4200 上运行,子应用在端口:4201 上运行。 所以基本上,如果我输入“http://localhost:4200/product/mockApp1”,那么它将在父应用程序中加载我们的子应用程序,其中“mockApp1”是我们的应用程序 ID。

所以现在我想在子应用程序中访问这个应用程序 ID,我通过父应用程序中的 URL 传递它,所以有可能在子应用程序中获取这个应用程序 ID。如果有可能,那我该如何实现呢?

谢谢

【问题讨论】:

    标签: angular single-page-application single-spa single-spa-angular


    【解决方案1】:

    你可以简单地使用ActivatedRoute的paramMap observable从url中提取它:https://angular.io/api/router/ActivatedRoute#paramMap

    【讨论】:

    • appId 是父应用程序的一部分,因此只有当我在父应用程序中使用此 ActivatedRoute 时,我才能使用 ActivatedRoute 获取此 appId,但如果我将尝试使用 ActivatedRoute 在子应用程序中访问此 appId,那么它将不起作用,因为 appId 参数是父应用 url 的一部分。但目前我正在使用角度位置或 javascript 位置对象来访问 url,然后从 url 中提取 appId。
    • 好的,没错。但是为什么你仍然需要从 URL 中提取那个 appId 呢?如果将基于该 appId 加载子应用程序,则该 appId 明确标识子应用程序本身。这意味着,如果需要,您可以将它用作每个子应用程序的代码中的常量
    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多