Aurelia-如何做可以在运行时加载的复合应用程序

时间:2019-01-29 17:43:59

标签: plugins bundler aurelia composite

我正在Aurelia中尝试做的事情,就像Prism在WPF复合应用程序中所做的一样。

因此,可以说我有一个定义主应用程序布局的“外壳”应用程序,然后有一些可以在运行时插入的模块。这些模块本身可以是Aurelia应用程序,也可以是Aurelia插件(不知道使用什么-需要推荐)。 加载后,该模块需要将其菜单项添加到主应用程序菜单中,以显示其功能。

  

这是该应用程序的模型:

The Main application shell that shows modules/features in the menu on the left side.

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

我正在使用最新的Typescript Aurelia-CLI创建应用程序,并且正在使用内置的捆绑程序:Aurelia's new built-in bundler

所以我不知道的是:

  1. 那些模块/功能-它们必须是什么? (也许是Aurelia插件,还是其他Aurelia应用程序?)

  2. 如何在运行时加载那些模块/功能? (例如将其部署在某些plugins文件夹中,并告诉主Shell应用程序加载它们)

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

请帮助

1 个答案:

答案 0 :(得分:0)

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


  1. 似乎子应用程序可能只是一条路由。应根据应用程序的URL确定如何加载路由/在何处加载路由
  2. 这些模块不需要做任何特定的事情,它们可以只是具有生命周期方法的正常普通JS / TS类,以处理激活/停用。我想主外壳程序和所有子应用程序需要共享一个公共URL,您不能有多个路由器。
  3. 可能有一个单例/中央存储区,用于新路径来注册有关已加载要素的信息,或者可以通过配置文件/元数据文件或数据库提取来先行加载。

这是另一个社区成员提出的类似问题,我认为这可以帮助您了解如何将事物粘贴到https://discourse.aurelia.io/t/dynamicaly-load-routes/1906