1

Rails 3 使用 UJS 方法,它允许处理来自 JavaScript 代码的 AJAX 响应。

$("form").live("ajax:success", function(data, status, xhr){
    $(".target").html(data.myHTML);
});

Rails 3 中的视图应该如何填充“数据”对象,所以我可以检查是否来自 JavaScript?

使用“js.erb”或“js.haml”进行常规渲染会导致 JavaScript 中的“数据”局部变量“未定义”。

当然,在视图中,我可以使用一些全局变量,如以下(“js.haml”):

- c = escape_javascript(render "search_result")
:plain
  var ajaxResponse = "#{c}";

…并从 JavaScript 处理程序中调用它,如下所示:

$("form").live("ajax:success", function(data, status, xhr){
    $(".target").html(ajaxResponse);
});

…但它打破了封装。

理想的方法是使用“数据”局部变量。

那么,视图应该是什么样子?

4

0 回答 0