我们有一个经典的 Rails4 应用程序,我们希望使用 AngularJS(Ember 可以,甚至 Backbone)更进一步,但问题是我们不希望使用 Rails 作为 API 端点的完全 Angular SPA。 我们想要做的是仅在应用程序的某些部分提供 SPA,例如搜索页面是 SPA,但用户的个人资料页面是经典的 Rails Controller / View ...
因此,用户来到/homepage 并获得 Angular.js、模板等服务,但是当他访问/users/3 时,他获得经典的 Rails View 。
您对此有何建议?我用谷歌搜索,找不到关于这个主题的好资源。我发现了很多“TodoMVC” aps,但没有包含“TodoMVC”部分的 Rails 应用程序 每个人都在谈论 Ember.js/AngularJS + Rails API。没有提到混合动力。
问题归结为:
- 将 AngularJS 库包含到 application.js 中并始终提供服务?
- 在 javasript/angular/下组织 Angular Controller / View /指令?
- 我们可能会发现哪些问题?
最佳答案
我有一个混合应用程序,您可以在 http://www.big5boutique.com 上查看 Rails 应用程序
您可以在 http://www.big5boutique.com/itinerary-builder/ 上查看 Ember.js 应用程序
基本上,我构建了一个常规 Rails 应用程序,为您访问的任何页面提供单个 application.js 和 application.css 。
但是,如果您访问单页应用程序,那么我将使用相同的 application.css,但包含不同的 javascript list 文件,该文件仅包含 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?
关于ruby-on-rails - Rails 应用程序的部分是 SPA (AngularJS) 或多个 SPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25991670/