2014-09-23 87 views
1

我們有一個經典的Rails4應用程序,我們想要使用AngularJS(Ember會做,甚至Backbone)進一步,但問題是我們不想要一個使用Rails的完全Angular SPA就像API端點一樣。 我們想要做的只是在應用程序的某些部分提供SPA,例如搜索頁面是SPA,但用戶的個人資料頁面是經典的Rails控制器/視圖...Rails應用程序與零件是SPA(AngularJS)或多個SPA

因此,用戶來到/主頁和服務Angular.js,模板等,但當他去/用戶/ 3他服務經典的Rails視圖..

你有什麼建議呢?我搜索了一下,找不到關於這個主題的好資源。我發現了很多「TodoMVC」的aps,但沒有部分是「TodoMVC」的Rails應用程序每個人都在談論Ember.js/AngularJS + Rails API。沒有混合提到。

的問題歸結爲:

  • 包括AngularJS庫到application.js中,始終服務呢?
  • 在javasript/angular /下組織角度控制器/視圖/指令
  • 我們可能發現的問題有哪些?
+0

我談論了最近:HTTP://幻燈片。 com/apneadiving/rails-and-angular#/ hybrids很難:)對於js,你可以在單個文件中最小化它,所以保持它 – apneadiving 2014-09-23 09:40:55

回答

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/*指向承載該應用程序應用程序的頁面。 灰燼允許你指定你的根網址是什麼(如果SPA是不是根URL)

有在這個答案的詳細信息:Possible to have multiple ember.js apps in one Rails app?

+0

謝謝!並在那裏有一個有趣的項目;) – luigi7up 2014-09-23 12:42:56

+2

好的答案和有用的鏈接,但我最興奮,因爲我還爲我的下一週年之旅做了一些預先規劃,今天上午將成爲非洲的一個野生動物園。很高興你發佈了Big5鏈接,因爲我還沒有聽說過該網站......所以贏得了:技術幫助和Safari規劃大聲笑:)! – 2014-09-23 16:02:53

+0

它是一種享受!如果您有任何與Safari相關的問題,請通過該網站聯繫。我的商業夥伴瞭解有關狩獵的一切! – ianpetzer 2014-09-24 18:22:14