single-page-application - 将单独的 Aurelia 应用程序拼接在一起

标签 single-page-application aurelia

是否有可能有一个通用的 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/

相关文章:

javascript - 我似乎无法弄清楚文件夹结构,它说系统找不到我的文件?

javascript - 如何让两个 Controller 在 Angular 中执行相同的操作,但改变网站的视觉方面?

web-applications - 将 Breeze.js 与 Dapper 结合使用

javascript - 将 HTML 转换为 Javascript 字符串

javascript - 谷歌分析 : How to track pages in a single page application?

javascript - 无法从 <content> 元素调用 View 模型中的函数

javascript - RequireJS:如何向路径添加前缀

javascript - 在 Aurelia 的 Viewmodel 中更改对象后,字符串插值未更新

jquery-ui - Aurelia:自定义元素与自定义属性

javascript - 当导入为 HTML 模板时,Frame Web VR 可防止从 Bootstrap 滚动