将Aurelia应用程序单独拼接

时间:2016-12-21 18:54:36

标签: single-page-application aurelia

是否可以使用可以在单独托管的子应用程序之间加载和导航的常见aurelia shell应用程序?

到目前为止,我只看到这个问题通过使用&aurelia-app'属性在他们中间。但这假定每个应用程序将从同一服务器实例提供服务,并且文件/路由器位于那里。

我所追求的是一种方法,让每个SPA都可以自行托管在不同的机器上(虚拟或其他),这些机器可以作为独立的应用程序或嵌入在可以在两者之间导航的父SPA中这些SPA可能会协调它们之间的传递数据。

这在Aurelia或任何其他SPA框架中是否可行?

1 个答案:

答案 0 :(得分:0)

您可以使用Aurelia对象的setRoot()方法将加载的内容更改为index.html中定义的内容。我在我的应用程序中使用它在全屏登录模式和带有完整导航栏的应用程序模式之间切换。

private aurelia: Aurelia;

showLogin() : Promise<any> {
    return this.setRoot(PLATFORM.moduleName('Login', 'login'));
}

showApplication() : Promise<any>  {
    return this.setRoot(PLATFORM.moduleName('Client', 'application'));
}

setRoot(root: string) {
    // NOTE: Aurelia will call router.deactivate() & router.reset() if there is an existing root
    // this.router.navigate('/', { replace: true, trigger: false });
    return this.aurelia.setRoot(root);
}