2015-12-09 6 views
9

मेरे पास 'टेम्पलेट' चयनकर्ता है, जो लोगों को वर्तमान टेक्स्टरेरा के 'टेक्स्ट/एचटीएमएल' को बदलने में सक्षम बनाता है।ग्रीष्मकालीन नोट सम्मिलित करें एचटीएमएल

तो जब वे टेम्पलेट बदलते हैं, तो मुझे Summernote HTML को अपडेट करने की आवश्यकता होती है। मैं (insertText) के लिए विधि देखता हूं, लेकिन यह HTML के लिए काम नहीं करता है।

क्या एचटीएमएल संस्करण के लिए कोई समाधान है?

मैंने सोचा कि एक .code() समाधान था, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है? मुझे एक त्रुटि प्राप्त होती है, "कोई फ़ंक्शन नहीं"

किसी भी मदद की बहुत सराहना की जाएगी!

$('.dialogMessageArea').summernote({ 
      height:'230px', 
      focus:true, 
      toolbar: [ 
       ['style', ['bold', 'italic', 'underline', 'clear']], 
       ['fontsize', ['fontsize']], 
       ['para', ['ul', 'ol', 'paragraph']], 
       ['table', ['table']], 
       ['misc', ['fullscreen','undo','redo']] 
      ] 
     }); 

     $(document).on('change', '.messageTemplate', function() { 
      var templateId = $(this).selected().attr('value'); 
      if(templateId) { 
       $.ajax({ 
        type: "POST", 
        dataType: "json", 
        url: '/cont/templates/GetTemplate', 
        data: {'templateId': templateId}, 
        success: function (data) { 
         $('.subjectMessage').val(data.results[0].subject); 
         if(data.results[0].template) { 
          $('.dialogMessageArea').code(data.results[0].template); 
         } 
        }, 
        error: function() { 
         alert('We were not able to get your template'); 
        } 
       }); 
      } 
     }); 

console.log($('.dialogMessageArea')); 
console.log("<b>Welcome</b><h3>hello world</h3>"); 

enter image description here

+0

बल्कि 'से .code',' .html' http कोशिश: // एपीआई। jquery.com/html/ –

+0

याहू मैंने कोशिश की। यह कुछ भी नहीं किया .... कोई अन्य विचार? – Justin

+0

सुनिश्चित करें कि '$ ('। DialogMessageArea') 'एक तत्व देता है, और सुनिश्चित करें कि' data.results [0] .template' में वैध HTML है? –

उत्तर

19
एपीआई ( http://summernote.org/getting-started/#basic-api) के अनुसार

,

wysiwyg का मान बदलने के लिए आपको पहले पैरामीटर के रूप में 'कोड' स्ट्रिंग और दूसरा एक

इस तरह

के रूप में अपनी सामग्री के साथ summernote समारोह का उपयोग करना चाहिए:

$('.dialogMessageArea').summernote('code', data.results[0].template); 
+0

उत्कृष्ट! मुझे समझ में नहीं आया कि डीओसीएस में। इसे स्पष्ट करने के लिए धन्यवाद! बहुत सराहना की। – Justin

0

यह वास्तव में

$('.dialogMessageArea').code('some value you want'); 

नोट काम करना चाहिए:

एचटीएमएलअंदरफ़ंक्शन एक स्ट्रिंग होना चाहिए। मुझे नहीं लगता कि यह काम करेगा यदि आप invalid HTML सामग्री डालने का प्रयास कर रहे हैं।

इस करने का प्रयास करें:

एक छिपा div बनाएं और फिर अपने AJAXsuccess विधि में AJAX से datas डालने और फिर jQuery के text() समारोह का उपयोग कर इसे पुनः प्राप्त करने का प्रयास करें।

<div style="display:none;" id="hidden_div"> 


      success: function (data) { 
       $('.subjectMessage').val(data.results[0].subject); 
       if(data.results[0].template) { 
        $('#hidden_div').html(data.results[0].template); 
        $('.dialogMessageArea').code($('#hidden_div').text()); 
       } 
      }, 
+0

टिप्पणी करने का समय लेने के लिए धन्यवाद, @ Pooya का जवाब कोई समस्या नहीं लग रहा था! – Justin

+0

कोई समस्या नहीं ...आपको खुशी है कि आपको क्या चाहिए – Abhinav

1

यदि आप नोट से सभी सामग्री को प्रतिस्थापित नहीं करना चाहते हैं, तो आप execCommand WebAPI से insertHTML कमांड का उपयोग कर सकते हैं।

जैसा कि ग्रीष्मकालीन execCommand WebAPI पर आधारित है, हम सीधे इसके संसाधनों का उपयोग कर सकते हैं। तो सबसे सरल summernote करने के लिए एक HTML सामग्री जोड़ने के लिए जिस तरह से इस तरह insertHtml पैरामीटर का उपयोग किया जा सकता है:

document.execCommand('insertHtml', null, '<p>My text <span style="color:red;">here</span></p>'); 
+0

मैंने इसे संक्षेप में जेनरेट करने के लिए सामग्री पर उपयोग किया, मुझे समरटेक जेएस से अपरकेस त्रुटि की त्रुटि मिली –

13
.summernote('pasteHTML', '<b>inserted html</b> '); 
+0

किंवदंती! एक इलाज किया। – chopstik

+0

क्या होगा यदि HTML कई पंक्तियों में है और इसमें सिंगल/डबल कोट्स हैं? – FrenkyB

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