2016-06-08 15 views
5

के बजाय तत्व ऑब्जेक्ट में tinymce संपादक जोड़ें मेरे पास एक कस्टम-एलिमेंट (वेब ​​घटक का ऑरेलिया समतुल्य) है जो एक tinymce संपादक बनाता है। चयनकर्ता का उपयोग करके टेक्स्टरेरा का चयन करने का कोई तरीका नहीं है (क्योंकि किसी पृष्ठ पर इन कस्टम-तत्वों में से कोई भी मौजूद हो सकता है)। मुझे तत्व वस्तु को पारित करके tinymce उदाहरण को प्रारंभ करने के कुछ तरीके की आवश्यकता है। क्या ऐसी संभावना है? मैं कहीं भी इस कार्यक्षमता को खोजने में सक्षम नहीं हूं ...चयनकर्ता

अग्रिम धन्यवाद।

+0

हम आपके द्वारा काम कर रहे डीओएम संरचनाओं के उदाहरणों के बिना आपकी मदद करने के लिए शुरू नहीं कर सकते हैं। कृपया [टूर] लें, चारों ओर देखो, और [सहायता] के माध्यम से पढ़ें, विशेष रूप से [* मैं एक अच्छा सवाल कैसे पूछूं? *] (/ मदद/कैसे पूछना है) –

+0

* "कोई नहीं है एक चयनकर्ता का उपयोग करके textarea का चयन करने का तरीका (क्योंकि किसी पृष्ठ पर इन कस्टम-तत्वों में से कोई भी मौजूद हो सकता है) "* यह एक गैर अनुक्रमक है। पृष्ठ पर किसी तत्व के कई उदाहरण होने से चयनकर्ता के माध्यम से चयन करना असंभव नहीं होता है। –

+0

@ टी.जे.क्रॉडर एक तत्व के कई उदाहरण नहीं हैं, इस कस्टम-तत्व के कई उदाहरण हैं, जिसका अर्थ है कि कस्टम-तत्व पृष्ठ पर जोड़े जाने पर हर बार एक नया टिनिमा बनाता है। इसे अपने आप से बाहर कुछ भी नहीं पता है (जिसका अर्थ है कि यह हर बार तत्काल आईडी में एक अद्वितीय आईडी उत्पन्न नहीं कर सकता है)। – pQuestions123

उत्तर

18

क्षमा करें कि मुझे थोड़ा देर हो चुकी है। मुझे यह वही समस्या थी। मैंने एक कोणीय निर्देश का उपयोग किया, और मैं $element पर TinyMCE प्रारंभ करना चाहता था। यह पता चला तो आप इस वाक्य विन्यास का उपयोग कर सकते हैं:

var element = getYourHTMLElementSomehow(); 

//... 

tinymce.init({ 
    target: element 
}); 

तो तुम selector बिल्कुल का उपयोग नहीं करते, और बदले target का उपयोग करें।

मुझे इसके लिए स्रोत कोड देखना पड़ा, क्योंकि ऐसा कहीं भी स्पष्ट रूप से प्रलेखित नहीं होता है।

+0

यह वही है जो मैं ढूंढ रहा हूं। और मैं पहले से ही कोड के इस तरह के टुकड़े की तलाश कर रहा हूं। यह विश्वास करना वाकई मुश्किल है कि यह उत्तर यहां मूल रूप से अनजान है क्योंकि यह लगभग जीवन बचतकर्ता है जिसे निश्चित रूप से दस्तावेज़ों में शामिल किया जाना चाहिए। और सवाल के लिए एक असली जवाब के रूप में चिह्नित किया जाना चाहिए। धन्यवाद @ जेन्स 1101, तुम मेरे नायक हो। – Tomalla

+0

@ टोमाल्ला धन्यवाद, और मेरी खुशी :-) – jens1101

2

चूंकि TinyMCE आपको एक चयनकर्ता का उपयोग करने की आवश्यकता महसूस करता है और आपको केवल एक तत्व उदाहरण पास करने की अनुमति नहीं देगा (और डेवलपर अपने फ़ोरम प्रतिक्रियाओं के आधार पर इस उपयोग-मामले की उपयोगिता को समझने के लिए प्रतीत नहीं होता है) आपका सर्वश्रेष्ठ दांव इस तरह कुछ करने के लिए होगा:

देखें

<template> 
    <textarea id.one-time="uniqueId" ...other bindings go here...></textarea> 
</template> 

ViewModel

export class TinyMceCustomElement { 
    constructor() { 
    this.uniqueId = generateUUID(); 
    } 

    attached() { 
    tinymce.init({ 
     selector: `#${this.uniqueId}`, 
     inline: true, 
     menubar: false, 
     toolbar: 'undo redo' 
    }); 
    } 
} 

function generateUUID() { 
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { 
     var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); 
     return v.toString(16); 
    }); 
} 

मेरे UUID समारोह यहां से आता है: Create GUID/UUID in JavaScript?

+0

ध्यान दें कि मैंने 'सक्रिय' को 'संलग्न' बी/सी में बदल दिया है, मैं लगातार उस कॉलबैक नाम को गलत करता हूं। 'संलग्न' वह कॉलबैक है जिसे आप चाहते हैं। –

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