0

我的视图有一个链接(远程:true)到控制器中的“新”操作(HTTP“GET”),它响应一些 JSON 格式的数据......我想使用 AJAX 并让我的咖啡脚本文件附加一个渲染部分 AJAX 成功......

这是代码:

$ ->
$('a').click (e) ->
    e.preventDefault()

    url = $(this).attr('href')

    $.ajax
        type: 'get'
        url: url
        dataType: 'json'
        success: (json) ->
            # I want to do something like this:
            $('body').append(render :partial => "questionForm", :locals => {:q_id => json.q_id})

这显然不是正确的语法......是否可以以某种方式将 ruby​​ 嵌入到我的 js.coffee 中?我已经检查了其他所有内容,如果我只是做类似的事情:

$('body').append(json.q_id)

它有效 - 所以 AJAX 调用和“新”操作等似乎都在工作..有什么想法吗?有可能做这样的事情吗?

4

1 回答 1

1

如果您从服务器返回数据,那么您可能想要使用客户端的诱惑系统(handlebars、jquery-templates、eco)来获取 json 数据并将其转换为 HTML。

如果您希望服务器为您呈现 HTML,那么您可以让服务器呈现 HTML 并使用 jquery 附加它。

就像是:

<%= link_to "New Model", new_models_path, remote: true, id: "batman" %>

然后在您的 app/models/new.js.erb 中,您将:

$("#batman").html("<%= escape_javascript(render partial: "models/form", locals: {model: @model})%>");
于 2012-06-26T18:19:53.350 回答