Plugins Aurelia-如何在运行时加载复合应用程序

Plugins Aurelia-如何在运行时加载复合应用程序,plugins,bundler,aurelia,composite,Plugins,Bundler,Aurelia,Composite,我试图在Aurelia中做的是类似Prism在WPF复合应用程序中所做的事情 假设我有一个“shell”应用程序,它定义了主应用程序布局,然后我就有了可以在运行时插入的模块。这些模块可以是Aurelia应用程序本身,也可以是Aurelia插件(不知道使用什么-需要推荐)。 加载时,模块需要将其菜单项添加到主应用程序菜单,以公开其功能 这是应用程序的模型: 每个模块可以有多个菜单项,并且可能非常复杂 我正在使用最新的Typescript、Aurelia CLI来创建应用程序,并且正在使用内置绑定

我试图在Aurelia中做的是类似Prism在WPF复合应用程序中所做的事情

假设我有一个“shell”应用程序,它定义了主应用程序布局,然后我就有了可以在运行时插入的模块。这些模块可以是Aurelia应用程序本身,也可以是Aurelia插件(不知道使用什么-需要推荐)。 加载时,模块需要将其菜单项添加到主应用程序菜单,以公开其功能

这是应用程序的模型:

每个模块可以有多个菜单项,并且可能非常复杂

我正在使用最新的Typescript、Aurelia CLI来创建应用程序,并且正在使用内置绑定器:

所以我不知道的是:

  • 这些模块/功能-它们必须是什么?(可能是Aurelia插件,或其他Aurelia应用程序?)

  • 如何在运行时加载这些模块/功能?(比如在一些插件文件夹中部署它,并告诉主shell应用程序加载它们)

  • 如何修改主菜单并从加载的模块中添加新菜单项

  • 请帮助

    Aurelia支持超动态应用程序。此外,还有其他社区成员也有类似的要求,并且能够解决。所以我认为这是可能的


  • 子应用程序似乎只是一个路由。如何/在何处加载路由应根据应用程序URL确定
  • 这些模块不需要做任何特定的事情,它们可以是一个普通的JS/TS类,使用生命周期方法来处理激活/停用。我猜主shell和所有子应用程序需要共享一个公共URL,您不能有多个路由器
  • 可以为新路由提供一个单例/中心存储,以注册有关已加载功能的信息,也可以通过配置文件/元数据文件或数据库获取预先加载

  • 下面是另一位社区成员提出的一个类似问题,我认为这可以帮助您了解如何将内容粘合到

    希望看到核心成员回答这个问题,因为这在很多情况下都非常有用。不知道为什么会被否决。谢谢,我会看看的