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"}に変更しようとしましたが、まだ何も返されません。誰かがこの問題を解決できますか?