【问题标题】:How to integrate EmberJS incrementally into an rails web app?如何将 EmberJS 增量集成到 Rails Web 应用程序中?
【发布时间】:2020-06-22 07:20:52
【问题描述】:

我们正在开发我们的开源密码管理器 cryptopus https://github.com/puzzle/cryptopus。 自我们上一个版本以来,我们集成了 emberjs,并且正在将一个又一个组件从经典的 Rails webapp 更新到 emberjs。目前,我们使用 locationType: "hash" 来触发 emberjs 部分。

我们现在面临的一个挑战是确保将 UI 组件移至 emberjs 后 URL 仍然相同。所以我们应该摆脱 emberjs 的“hash”-URLs 并且仍然能够调用一些遗留的 rails webapp URLs。

有没有办法忽略 emberjs 中的路由并将请求发送到后端?还有其他想法可以使 emberjs 的增量集成成为可能吗?如果 SPA 在从 class rails webapp URL 返回后重新初始化,那就没问题了。

一些示例路线:

/session/new -> send to rails backend
/teams -> handle by emberjs
/teams/42 -> handle by emberjs
/admin/users -> send to rails backend

还可以为所有 emberjs 处理的路由添加前缀,例如:/app/teams、/app/teams/42

【问题讨论】:

    标签: ruby-on-rails ember.js


    【解决方案1】:

    我们找到了一个非常简单的解决方案。

    1. 在 config/environment.js 中:删除 rootURL,locationType:“auto”
    2. 在 emberjs 中配置了所有需要的路由
    3. 在 Rails 中创建了一个前端控制器,它在第一次请求时为 ember 文件提供服务

    所以现在,应用程序的一些前端部分使用 ember 运行,其他部分仍然使用 rails。 ember 路由器不关心未配置的 URL。很好的解决方案:)

    查看https://github.com/puzzle/cryptopus 以查看完整的解决方案。

    【讨论】:

    • 这也是我的建议,只需使用指向您不想让 ember 处理的任何内容的链接,然后让它落入轨道。由于此答案对您有用,请将其标记为正确,以便此问题显示为已解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2020-12-27
    • 2019-01-27
    相关资源
    最近更新 更多