2015-07-10 105 views
0

我的應用程序只有一個視圖頁面。我的查看頁面(oneview.haml)有以下流程。從多個控制器動作更新相同視圖 - 導軌

  1. 最初它只包含帶有提交按鈕的表單。這是加載了默認的控制器動作oneview(加載初始oneview.haml)。

  2. 一旦用戶填寫表單並單擊提交,我必須調用一個新的控制器操作並使用表單詳細信息執行API調用,並且必須在同一視圖(oneview.haml)上更新返回的數據。 oneview.haml不應該重新加載它必須更新而不刷新。讓這是一個帶有一些可點擊行的表格。

  3. 如果用戶點擊其中一行,則必須調用新的控制器操作。並且此控制器還會根據可點擊行中傳遞的參數執行一些API調用,並添加一個新的div以將該行的詳細信息添加到同一頁面。這裏也不應該重新加載頁面,但必須通過添加額外的div進行更新。

我是一種新的鐵軌,並沒有處理過AJAX。我知道動態加載和所有與阿賈克斯交易。但我的觀點是,不同的控制器操作如何更新已經存在的視圖。我知道從控制器渲染我們可以使頁面加載,但我們如何添加內容到一個已經存在的頁面fron不同的控制器操作。

我知道它的一個很長的問題,我有點困擾了這幾天。任何幫助和參考將不勝感激。謝謝

回答

0

最基本的參考可以在JQuery網站找到AJAX

聽起來好像你希望將點擊事件綁定到將運行ajax調用的DOM元素,然後使用通過所述調用傳遞的數據在頁面上執行某些操作。

簡單的點擊綁定:

$(document).on('click', 'selector', function() { 
    //AJAX call 
}); 

樣品AJAX調用和Tutorial

$.ajax({ 
    type: "GET", 
    url: "methodUrl", 
    success: function (returnedData) { 
    //Do stuff with returnedData, for example appending html type data 
    $("selector").append(returnedData); 
    } 
}); 

你可以到你的後臺添加的錯誤處理,POST數據作爲參數的方法,返回不同的數據類型比您發送的類型(使用contentType發送數據和dataType接收數據)以及各種其他可自定義的選項,具體取決於您需要執行的操作。

一般來說,AJAX是一種非常好的方法,可以在不發送完整的頁面重新加載請求的情況下擊中服務器並操縱對象和頁面。

+0

感謝您的ajax建議。但主要是我從軌道端尋找建議如何處理多個控制器操作中的一個視圖頁面 – Glad

+0

在ajax調用中使用URL,您可以點擊後端的任何方法。然後使用多個Ajax調用來擊中不同的端點。 –

相關問題