2

我一直在尝试使用来自的 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"} 并且它仍然没有返回任何内容 - 任何人都可以帮助解决这个问题吗?

4

1 回答 1

3

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

于 2012-10-04T05:11:22.597 回答