【问题标题】:Return coffeescript through AJAX call into Rails view通过 AJAX 调用将咖啡脚本返回到 Rails 视图
【发布时间】:2014-02-13 10:32:23
【问题描述】:

我想使用 Ruby 来帮助我创建咖啡脚本对象..

所以我希望能够创建一个类似的文件:(example.js.coffee.erb):

class Test
  @constructor: (@name) ->


window.new_obj = new Test(<%= some_ruby_code%>)

并在 AJAX 请求上执行:

$(document).ready ->

    $.ajax "/controller/action",
            type: "GET"
            error: (jqXHR, textStatus, errorThrown) ->
                  alert "Your search result came up empty. Please try again, or refresh the page."
            success: (data, textStatus, jqXHR) ->    
                  #APPEND SCRIPT DIRECTLY INTO DOCUMENT THEN
                  console.log window.new_obj.name
                  #DO OTHER THINGS WITH DATA FROM example.js.coffee.erb

【问题讨论】:

  • 你的问题是?
  • 如何让 javascript 附加到文档中?我试过 $(document).append(data)... 并且 example.js.coffee.erb 里面有一个简单的警报语句,没有触发..
  • 顺便说一句,这不是您编写 CoffeeScript 构造函数的方式。你有一个额外的@

标签: ruby-on-rails ruby ajax coffeescript


【解决方案1】:

如果您希望 AJAX 请求检索和执行代码,请使用 dataType: 'script'

将脚本附加到 DOM 不会做任何事情。

documentation

数据类型
...
“脚本”:将响应评估为 JavaScript,并将其作为纯文本返回。通过将查询字符串参数“_=[TIMESTAMP]”附加到 URL 来禁用缓存,除非缓存选项设置为 true。注意:这会将 POST 转换为远程域请求的 GET。
...

【讨论】:

  • 越来越近了..虽然咖啡脚本没有编译。如果我只使用 JS 就可以了。
  • @Davey 有一个名为 coffeebeans 的 gem,如果我没看错的话,当请求“JS”格式时,它应该能够将咖啡脚本呈现给 JS。我不相信你需要做任何额外的工作,除了 Meagar 写的。我无法从个人经验中发言,我只是从this answer 偶然发现的。该问题的其他一些答案也可能会有所帮助。
猜你喜欢
  • 2011-11-08
  • 2016-04-12
  • 2015-10-16
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多