【问题标题】:Rails - @mentions using at.jsRails - @提及使用 at.js
【发布时间】:2012-10-04 04:33:06
【问题描述】:

我一直在尝试使用来自

的 At.js 库为我的应用程序实现@mentions

https://github.com/ichord/At.js

我在触发 at 功能时遇到了一些问题(由下面代码中的回调触发)。我已经设置了以下咖啡脚本:

$ ->
  $("textarea").atWho "@", (query, callback) ->
    console.log("@who") 
    $.ajax 
      url: "/users/mentions.json"
      param: q: query 
      done: (data) ->
        console.log("in callback")
        console.log(data)
        names = $.parseJSON(data)
        console.log(names)
        callback names

从 js 和 rails 控制台我可以看到控制器动作被调用,但是没有进行其他调用。

这个库对我来说在静态数据上运行良好,所以我认为回调语法是个问题。有没有人对此有任何指示?

编辑:

我在下面调整了 Nick 的解决方案并更改为使用 get 请求,这对于使用以下修改后的代码从 rails 应用程序查询和返回数据非常有效:

$ ->
  $("textarea").atWho "@", (query, callback) ->
    console.log("@who") 
    $.get "/users/mentions.json", q: query, ((result) ->
      console.log("in callback")
      console.log("result: ")
      console.log(result)
      names = $.parseJSON(result)
      console.log(names)
      callback names
    ), "json"

但是 parseJSON(result) 行仍然存在问题 - 它每次都返回 null。 我尝试将要发送的 json 更改为非常简单的 {"name":"james"} ,但它仍然没有返回任何内容 - 任何人都可以帮助解决这个问题吗?

【问题讨论】:

    标签: javascript jquery ruby-on-rails


    【解决方案1】:

    尝试将行 param: q: data 更改为 data: q: data$.ajax 函数不支持传递 param 选项。

    【讨论】:

    • 谢谢尼克 - 这似乎已经解决了这个问题。我还有另一个问题,我已经编辑了上面的问题以显示.. 任何更多建议将不胜感激。
    • 我认为您根本不需要解析 JSON。您的 ajax 调用已经做到了。尝试names = result 而不是names = $.parseJSON(result)
    • 根据上述建议,我得到一个错误 Object # has no method 'splice'
    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2023-03-25
    相关资源
    最近更新 更多