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: data行をに変更してみてくださいdata: q: data$ .ajaxparam関数は、オプションの受け渡しをサポートしていません。

于 2012-10-04T05:11:22.597 に答える