【问题标题】:Calling AJAX in Coffeescript在 Coffeescript 中调用 AJAX
【发布时间】:2022-09-23 20:59:24
【问题描述】:

我有一个在视图中运行良好的 ajax 调用,但我想在一个咖啡脚本中,就在一个数据表调用中。代码如下所示:

    $(document).ready(function () {
    $.ajax({
      type: \"GET\",
      url: \"<%= people_path(format: :json) %>\",
      dataType: \"json\",
      success: function({data}) {
        const user_ids = data.map(user => user.id)
        $(\"#people-ids\").html(user_ids.join());
      }
    });
  });

我是 coffeescript 的新手,所以我需要一些帮助来完成映射部分的方法。 我可以做到这一点:

ajax:
  type: \'GET\'
  url: $(\'#people-datatable\').data(\'source\')
  dataType: \'json\'
  success: ({data}) ->

我在 {data} 中获得了 7 个对象,但我不知道如何像在 JS 中那样继续检索它们的 ID。有人可以帮忙吗?

  • 我不确定问题是什么——它可能与 JS 相同。
  • 当我简单地将与 JS 相同时,我得到一个错误用户在 data.map 行中不存在

标签: ruby ruby-on-rails-3 coffeescript


【解决方案1】:

map 迭代器函数中,您需要将参数名称括在括号中。 Coffeescript 不支持 javascript 中允许的不带括号的语法。

这将是模棱两可的,因为它可以解释为 user =&gt; ... 是一个函数 user 正在使用参数 =&gt; ... 执行

这应该有效:

$(document).ready ->
  $.ajax
    type: "GET",
    url: "<%= people_path(format: :json) %>",
    dataType: "json",
    success: ({ data }) ->
      user_ids = data.map (user) -> user.id
      $("#people-ids").html user_ids.join() 

在您学习语法时,在http://coffeescript.org/#try: 中构建 sn-ps 可能很有用,这样您就可以立即看到它转译成的内容。

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 2015-08-22
    相关资源
    最近更新 更多