2015-07-10 97 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调用来击中不同的端点。 –

相关问题