2013-09-16 3 views
12

मैं कोडिमिरर v3.16 का उपयोग कर रहा हूं और मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं अपने कोडमिरर के उदाहरण को कैसे मार सकता हूं? मूल रूप से कोडमिरर आग लगती है जब एक टेक्स्टरेरा मेरे पृष्ठ पर एक मोडल में खुलती है। इस मोडल को बंद करना, मुझे उदाहरण को मारने की ज़रूरत है, अन्यथा जब मैं मोडल को दोबारा खोलूं, तो मुझे दो टेक्स्टरेस मिलेंगे।कोडमिरर उदाहरण को कैसे मारें?

क्या कोई मदद कर सकता है?

उत्तर

8

यदि कोडमिरर उदाहरण CodeMirror.fromTextArea के साथ बनाया गया था, तो आप वर्तमान सामग्री को अपने "प्रतिबिंबित" टेक्स्ट क्षेत्र में कॉपी करने और उदाहरण को हटाने के लिए toTextArea विधि का उपयोग कर सकते हैं।

अपने मुख्यमंत्री उदाहरण मान लिया जाये कि "CMEditor" की आईडी है:

CM = document.getElementById('CMEditor'); 
CM.CodeMirror.toTextArea(); 

वैकल्पिक रूप से, आप मॉडल के बाहर मुख्यमंत्री उदाहरण का दृष्टांत सकता है, और सिर्फ छिपाने के लिए और यह दिखाने जब मोडल खुल जाता है।

7

जब कोडमिरर को डीओएम से हटा दिया जाता है (और आप जावास्क्रिप्ट होल्डिंग के सभी मौजूदा संदर्भों को मार देते हैं), तो यह कचरा इकट्ठा होगा। कोई स्पष्ट 'हत्या' विधि नहीं है, आप बस इसका जिक्र करना बंद कर देते हैं।

+0

Chrome की स्मृति प्रोफाइलर होता नहीं है आपसे असहमत होना पसंद है। बंद होने से बने डोम नोड संदर्भ केवल जादुई रूप से गायब नहीं होते हैं क्योंकि उन नोड्स को डीओएम से हटा दिया गया था। यदि CodeMirror वैश्विक कोडमिरर ऑब्जेक्ट में अपने उदाहरण संग्रहीत करता है, तो आपके पास मेमोरी लीक है। – user2867288

+1

जो यह नहीं करता है, इसलिए मुझे नहीं पता कि आप यहां किस बारे में बात कर रहे हैं। – Marijn

+0

मेरा केस एक पृष्ठ एप्लिकेशन है जहां आप लगातार कोडमिरर टेक्स्टरेस बना रहे हैं और नष्ट कर रहे हैं। क्या आप यह कह रहे हैं? https://jsfiddle.net/7zvnyagq/ – user2867288

4

संस्करण 5.3 या 05/2015 अद्यतन पाठ क्षेत्र के शीर्ष पर मुख्यमंत्री के लिए ही काम करते हैं इसके बाद के संस्करण

CM = document.getElementById('CMEditor'); 

CM.CodeMirror.toTextArea(); // is not working 

CM.toTextArea(); // is making the magic happen 
5

जवाब जो हमेशा मामला नहीं है। यह बेहतर है:

cm.setOption("mode", "text/x-csrc"); 
cm.getWrapperElement().parentNode.removeChild(cm.getWrapperElement()); 
cm=null; 
+0

यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/10681153) – GAMITG

+2

हुह? ओपी ने पूछा 'मैं अपने कोडमिरर के उदाहरण को कैसे मार सकता हूं' और मैंने कोड को केवल ऐसा करने के लिए दिखाया है – kofifus

1

मैं जब मोडल बंद कर दिया है चलाने के लिए ऊपर कोड जोड़ दिया है, लेकिन यह कहना है कि --- cmeditor.toTextArea एक समारोह

$("body").on("hidden.bs.modal", ".modal", function() 
{ 
    $(this).removeData("bs.modal"); 

    cmeditor = document.getElementById("email_template_text"); 
    cmeditor.toTextArea(); 
}); 
संबंधित मुद्दे