2011-01-27 5 views
6

मैंने प्रोटोटाइप को JQuery के साथ JQuery के साथ प्रतिस्थापित किया है। अब मैं निम्न कार्य करने का प्रयास कर रहा हूं:रेल 3 JQuery page.insert_html और TypeError: Element.insert एक फ़ंक्शन नहीं है

 
    #photo 
    =render 'shared/photo' 
    = link_to_function "Add a Photo" do |page| | 
     page.insert_html :bottom, 'photo', :partial => 'shared/photo', :object => Photo.new | 
    end | 

तो उत्पन्न जावास्क्रिप्ट है:

 

try { 
    Element.insert("photo", { 
     bottom: "Data\n\n" 
    }); 
} catch (e) { 
    alert('RJS error:\n\n' + e.toString()); 
    alert('Element.insert(\"photo\", { bottom: \"Data\\n\\n\" });'); 
    throw e 
}; 
return false; 

रेल दस्तावेज़ों में insert_html एक प्रोटोटाइप सहायक है, लेकिन मैंने सोचा कि https://github.com/rails/jquery-ujs के साथ Rails.js को प्रतिस्थापित करने से JQuery हेल्पर्स के लिए इस हेल्पर्स को प्रतिस्थापित किया जाएगा। मुझे टाइप एरर मिलता है। एलिमेंट इंसर्ट एक फंक्शन नहीं है।

क्या मैं कुछ गलत कर रहा हूं? या क्या मैं स्वयं मददगार के बिना ऐसा करने जा रहा हूं?

उत्तर

3

किसी ने मेरे लिए इस सवाल भेजा है, शायद मैं कर सकते हैं। मैं jquery-ujs/jquery-rails टीम पर हूं।

रेल के लिए प्रोटोटाइप-ujs, jQuery-ujs विपरीत आर.जे. समर्थन के साथ भी आ नहीं करता है। एक अलग मणि है जो उस कार्यक्षमता को jrails कहलाता है।

We've talked about merging the two projects, लेकिन उन्हें अलग रखने के लिए, के रूप में यह अधिक सुविधाजनक है कि जिस तरह से फैसला किया।

2

मेरे पास काफी प्राथमिक कार्यवाही है। मेरे मामले में मैंने page.insert_html(:top ,'content', render('form')) चलाया है।

त्रुटि उत्पन्न .js.rjs कोड Element.insert() चलाने की कोशिश कर रहा है, जो प्रोटोटाइप फ़ंक्शन है। मैं काफी पता नहीं रेल बहुत ही उत्पादक कुछ भी करने को के बारे में, हालांकि मेरी application.js में निम्नलिखित को जोड़ मुझे फार्म में काम किया है:

//Check if the function exists 
if (typeof Element.insert !== "function") { 
    //If not, hook it onto the $().append method. 
    Element.insert = function (elem, ins) { 
    $("#" + elem).append(ins.top); 
    }; 
} 

जाहिर है, इस बुनियादी है और केवल के साथ काम करेंगे: शीर्ष, तो समायोजित आपकी जरूरतों के लिए। वहाँ एक बेहतर तरीका होना चाहिए ...

0

हाँ rails.js एक js ड्राइवर कि js
डोम में एक डेटा- विशेषता के साथ तत्वों पर कॉलबैक करते हैं। (जेएस सबमिट, AJAX लिंक, आदि)

जो आपको चाहिए वह प्रोटोटाइप रेल सहायकों की एक पुनर्वितरण है जिसे आप एक जेएस फ़ाइल से उम्मीद नहीं कर सकते हैं जब तक कि यह प्रोटोटाइप सिंटैक्स को ला Kdoole को दोहराए।

this fork of jrails आपको क्या चाहिए प्रदान करता है और रेल 3

लेकिन यह मेरे लिए jQuery के साथ काम नहीं करता है के साथ काम करता है। मैंने अपतटीय लोगों की खोज की लेकिन कुछ भी नहीं मिला।

अद्यतन: मैं इसे सुचारू रूप से काम करते हैं, मेरी गलती बनाने के लिए प्रबंधन कैसे किया ...

मैं लगा ज्यादातर लोगों jQuery जो संभावना ugliest कोड प्रारूप मैं कभी देखा है के साथ js.erb टेम्पलेट का उपयोग।

संबंधित मुद्दे