私はruby-on-railsアプリケーションでのデータテーブルのページ内編集を行うためにbest_in_placeを使用しています。インプレース編集は機能しますが、私は コーナーケースが失敗しました。行の項目のペア(device_name、 generic_name)は一意である必要があります。それらが一意でない場合、サーバー側の コードは、変更されたgeneric_nameを持つ一連の名前を戻し、 のペアを一意にします。私は ディスプレイを更新するために以下のcoffeescriptを使用します。best_in_placeは更新後に元の値を保持します
このコードが動作するjQuery ->
$('.best_in_place[data-bip-object="full_dpoint"]').bind(
"ajax:success", (event, d) ->▫
return if ! d?
data = JSON.parse(d)
if ! data.dpoint?
return
else
item_to_edit = "#best_in_place_full_dpoint_" + data.dpoint.dpoint_id + "_generic_name"
$(item_to_edit).text(data.dpoint.generic_name)
)
は、(IEは、それが正しく、サーバーが提供する 新しい汎用名前でページを更新する)、私はその後、「generic_name」 フィールドに背中をクリックした場合、(編集モードに入ります)デフォルトの編集テキストは、最初のページの内容(ページのダウンロード時間)に戻って に変更されます。
$(item_to_edit).attr('data-bip-original-content', data.dpoint.generic_name)
$(item_to_edit).attr('data-bip-value', data.dpoint.generic_name)
$(item_to_edit).attr('original-value', data.dpoint.generic_name)
$(item_to_edit).attr('bipValue', data.dpoint.generic_name)
$(item_to_edit).attr('bipvalue', data.dpoint.generic_name)
すべてを無駄に:私は は、次のすべてを含め、新しい 一般名に多くの異なったページ要素を設定して実験しています。元の の値がどこに格納されているのかを調べようとしていますが、これら以外のものは見つかりませんでした。
アイデア?
TIA。
レナード
簡単な質問...あなたを行います場合は、ページをリロードするか?あなたのjavascriptコードが作成している変更された値を表示するか、それとも最適な場所に入力された古いフィールドに戻しますか? – uday
リロード後、変更された値が正しく表示されます。私はまた、変更された値を得るためにページをリロードする必要はないと付け加えるべきです。ちょうど「編集」ボックスの外をクリックするだけで、正しい(変更された)値に戻ります。 – Leonard