部件为SPA(AngularJS)或多个SPA的Rails应用程序

时间:2014-09-23 09:35:06

标签: ruby-on-rails angularjs

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

所以,用户来到/ homepage并提供Angular.js,模板等服务,但是当他去/ users / 3时,他将获得一个经典的Rails视图。

您对此有何建议?我用谷歌搜索,无法找到关于该主题的良好资源。我找到了很多" TodoMVC" aps,但没有Rails应用程序,部件是" TodoMVC"每个人都在谈论Ember.js / AngularJS + Rails API。没有提到混合动力。

问题归结为:

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

1 个答案:

答案 0 :(得分:3)

我有一个混合应用,你可以在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允许您指定根网址(如果SPA不在根URL上)

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