3

タスクがカテゴリ別に表示されるタスク リスト アプリがあります。

カテゴリは 2 か所にリストされています。best_in_place ジェムを使用して、カテゴリ名をその場で編集できるようにしています。私はそれがうまく機能しています。私の問題は、カテゴリ名が2か所にあり、その場所で1回しか編集していないため、フォームの送信後に編集されていない名前の他の外観を新しい名前で更新する必要があることです. 影響を受けるカテゴリの名前を更新/再読み込みする最良の方法は何ですか?

ありがとう。

4

2 に答える 2

1

コールバックを使用する必要があります。

宝石の説明 ( https://github.com/bernat/best_in_place ) を使用して、私はこれを得ました:

<%= best_in_place @user, :name, :data => {:user_name => @user.name}, :classes => 'custom_class'  %>

$('.custom_class').bind("ajax:success", function(){ alert('Name updated for '+$(this).data('userName')); });

したがって、あなたの場合、次のようなことをする必要があります:

$("#other_ocurrence_id").html($(this).data('userName'));
于 2013-04-11T17:07:06.873 に答える
1

このコード (haml) がある場合

= best_in_place @user, :name, :classes => 'name-edit'

コールバックが必要です。ただし、コールバック ハンドラーのコンテキストでは、「this」は呼び出し元の要素を表すため、次のようにすることができます。

$('.name-edit').on 'ajax:success', (event, data, status, xhr) ->
  $('.some-other-widget').html this.innerHTML

その方法で他のウィジェットに新しい値を取得します。コールバック ハンドラのイベントには、プロパティとして currentTarget もあり、これは ajax リクエストを開始したウィジェットです。ただし、その必要はないと思います。

于 2013-05-02T22:03:49.603 に答える