2014-03-25 43 views
0

我想將具有多個模型,控制器和視圖的現有導軌應用程序轉換爲單個頁面應用程序(SPA)。我怎樣才能爲每個模型渲染視圖,而不是作爲單獨的html頁面,而是作爲主頁的各個部分(比如說每個部分的div),這些部分可以通過垂直滾動進行導航?在標準的MVC Rails應用程序中,是否有可能獲得相同的用戶體驗,我的意思是特定的垂直滾動?將現有導軌應用程序轉換爲單個頁面

+0

你只需要改變意見,這是與模型和控制器做到這一點.. –

+0

詳細請詳細說明。 –

回答

2

好了,一個標準的Rails應用程序轉換爲單頁應用(SPA),你需要把它勾到MVC前端 - 最終框架。之前由rails調用呈現的html現在將被引入前端MVC框架,該框架將通過進行AJAX調用來呈現頁面的一部分而不是整個頁面。 模型沒有什麼變化,幾乎所有的控制器代碼也保持不變。 作爲一個前端MVC框架,您可以查看angular.js,它來自Google穩定的產品或backbone.js,我個人覺得它很棒。事實上,還有一大堆其他框架,從ember.js到重要的和全功能的,包括最小和必要的handlebar.js 如果你正在尋找教程,tutsplus有一個我知道的軌道骨幹教程。希望這會讓你開始。

+0

我鑽研了燼,它看起來不錯,但我找不到一個簡單的說明如何創建一個簡單的垂直滾動頁面。據我瞭解,在一個典型的餘燼應用程序模板應該取代對方。 – helcim

1

這是完全可能的,你應該調用頁面的意見你通過javascript而不是html進行操作,以便每個操作都返回您想要修改的頁面的一部分,而不是重新加載整個頁面。

例如,假設您想要將用戶添加到用戶列表:

  • 當您單擊添加按鈕,你做一個AJAX張貼到您的控制器。

  • 這個行動迴應了JavaScript文件的JS格式(controller_action.js.erb)

  • 這個js文件將評估對應於你的表中的一條線的部分模板(_user.html.erb ),找到你的表和評估HTML追加到表

看一看:

http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html

具體這部分與示例回答你的問題:

http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#server-side-concerns

0

嘗試turbolinks寶石 你的應用程序將類似於一個頁面的應用程序,而且工作量少,時間少。

相關問題