2016-01-20 4 views
6

अद्यतन के बाद मूल मानों को बरकरार रखता है मैं रूबी-ऑन-रेल ऐप में डेटा की तालिका के इन-पेज संपादन में सर्वोत्तम_इन_स्थल का उपयोग कर रहा हूं। इन-प्लेस संपादन काम करता है, लेकिन मेरे पास कोने केस है जो विफल रहता है। पंक्ति में आइटम की एक जोड़ी (device_name, जेनेरिक_नाम) अद्वितीय होना चाहिए। यदि वे अद्वितीय नहीं हैं, तो सर्वर-साइड कोड अद्वितीय रूप से अद्वितीय बनाने के लिए बदले गए जेनेरिक_नाम वाले नामों का एक सेट पास करता है। मैं डिस्प्ले को अपडेट करने के लिए निम्न कॉफ़ीस्क्रिप्ट का उपयोग करता हूं।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) 
      ) 

इस कोड काम करता है (आईई इसे ठीक से सर्वर द्वारा आपूरित नया सामान्य नाम के साथ पेज को अद्यतन करता), लेकिन अगर मैं फिर '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) 

सभी: मैं नई सामान्य नाम करने के लिए कई अलग अलग पृष्ठ तत्वों की स्थापना, निम्न में से सभी सहित के साथ प्रयोग किया है। मैंने डोम में चारों ओर पोक किया है यह जानने की कोशिश कर रहा है कि मूल मान संग्रहीत किया जा सकता है, लेकिन इनके अलावा कुछ भी नहीं मिला है।

कोई विचार?

टीआईए।

लियोनार्ड

+0

त्वरित प्रश्न ... के बाद मूल्य page..what में बदल जाती है आप करते हैं अगर आप पेज रीलोड करते हैं तो मिलता है? क्या यह बदले गए मान को दिखाता है कि आपका जावास्क्रिप्ट कोड बना रहा है या यह जगह पर सबसे अच्छा दर्ज किया गया पुराना फ़ील्ड पर वापस आ जाता है? – uday

+0

पुनः लोड करने के बाद, यह सही रूप से परिवर्तित मूल्य दिखाता है। मुझे यह भी जोड़ना चाहिए कि बदले गए मूल्य को पाने के लिए मुझे पृष्ठ को फिर से लोड करने की आवश्यकता नहीं है, अगर मैं सिर्फ 'संपादन' बॉक्स के बाहर क्लिक करता हूं तो भी सही (बदले गए) मान पर वापस जाता है। – Leonard

उत्तर

0

कोशिश करो

जावास्क्रिप्ट:

$(document).ready(function() { 
    /* Activating Best In Place */ 
    jQuery(".best_in_place").best_in_place(); 
    var old_value; 
    $(document).on('change', '.not_abort', function (e) { 
     console.log(e.target.value); 
     old_value = e.target.value; 
    }); 
    $(document).on('ajax:error', '.not_abort', function (e) { 
     console.log(e); 
     e.target.innerHTML = old_value; 
     $(e.target).data('bipOriginalContent', old_value); 
    }); 

}) 

दृश्य:

best_in_place @device_name, :email, class: 'not_abort' 
+0

काम नहीं करता है ... पुनः प्रयास करें? – Leonard