是否有可能有一个通用的 aurelia shell 应用程序可以在单独托管的子应用程序之间加载和导航?
到目前为止,我只看到有多个带有 'aurelia-app' 属性的 div 来回答这个问题。但这假设每个应用程序都将从同一个服务器实例提供服务,并且文件/路由位于同一位置。
我所追求的是一种让单独的 SPA 的方法,每个 SPA 都可能在不同的机器(虚拟或其他)上自托管,可以充当独立的应用程序或嵌入到可以在这些 SPA 之间导航并可能协调传递数据的父 SPA 中它们之间。
这在 Aurelia 或任何其他 SPA 框架中是否可行?
最佳答案
您可以使用 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);
}
关于single-page-application - 将单独的 Aurelia 应用程序拼接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41269983/