Rails - 使用at.js的@mentions

时间:2012-10-04 04:33:07

标签: javascript jquery ruby-on-rails

我一直在尝试使用

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

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

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

$ ->
  $("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”}并且它仍然没有返回任何内容 - 任何人都可以帮助解决此问题吗?

1 个答案:

答案 0 :(得分:3)

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