【问题标题】:Rails app with parts being SPA (AngularJS) or multiple SPA部分为 SPA (AngularJS) 或多个 SPA 的 Rails 应用程序
【发布时间】:2014-11-17 10:58:45
【问题描述】:

我们有一个经典的 Rails4 应用程序,我们希望使用 AngularJS 更进一步(Ember 可以,甚至 Backbone),但问题是我们不想要一个完全使用 Rails 作为 API 端点的 Angular SPA。 我们要做的是仅在应用程序的某些部分提供 SPA,例如搜索页面是 SPA,但用户的个人资料页面是经典的 Rails 控制器/视图...

因此,用户来到 /homepage 并获得了 Angular.js、模板等,但是当他进入 /users/3 时,他获得了经典的 Rails 视图..

您对此有何建议?我用谷歌搜索,找不到关于这个主题的好资源。我发现了很多“TodoMVC”的应用程序,但没有一个 Rails 应用程序的部分是“TodoMVC” 每个人都在谈论 Ember.js/AngularJS + Rails API。没有提到混合动力。

问题归结为:

  • 将 AngularJS 库包含到 application.js 中并始终提供它?
  • 在 javasript/angular/ 下组织角度控制器/视图/指令?
  • 我们可能会发现哪些问题?

【问题讨论】:

标签: ruby-on-rails angularjs


【解决方案1】:

我有一个混合应用程序,您可以在 http://www.big5boutique.com 上查看 Rails 应用程序

您可以在 http://www.big5boutique.com/itinerary-builder/ 上查看 Ember.js 应用程序

基本上,我已经构建了一个常规的 Rails 应用程序,它为您访问的任何页面提供一个 application.js 和 application.css。

但是,如果您访问单页应用程序,那么我将使用相同的 application.css,但包含不同的 javascript 清单文件,该文件仅包含 Ember / Angular 代码,而其余部分则省略了正常的基于 jQuery 的代码应用程序。

然后在 application.html.erb 我有一些代码检查请求 url 并包含适当的 javascript。

Rails 应用程序和 Ember 应用程序都使用相同的页眉和页脚,但我将所有请求 /itinerary-builder/* 定向到托管 ember 应用程序的页面。 Ember 允许您指定您的根 URL 是什么(如果 SPA 不在根 URL 上)

此答案中有更多详细信息:Possible to have multiple ember.js apps in one Rails app?

【讨论】:

  • 谢谢!还有一个有趣的项目;)
  • 很好的答案和有用的链接,但我很兴奋,因为我还在为我的下一个周年纪念之旅做一些预先计划,今天早上我将在非洲进行一次野生动物园之旅。很高兴你发布了 Big5 链接,因为我还没有听说过这个网站……所以为了胜利:技术帮助和 safari 规划 LOL :)!!
  • 很高兴!如果您有任何与 Safari 相关的问题,请通过该网站取得联系。我的商业伙伴对狩猎了如指掌!
猜你喜欢
  • 2015-02-07
  • 1970-01-01
  • 2022-12-21
  • 2014-01-11
  • 2012-05-28
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
相关资源
最近更新 更多