2016-03-15 5 views
5

मुझे कैसे पता चलेगा कि बहुलक तत्व कब तैयार है? कि देते:डायनामिक ऐड पॉलिमर तत्वों के लिए तैयार घटना

यह प्रभावी रूप से जोड़ा जाता है:

var ele = document.createElement('my-custom-element'); 
document.body.appendChild(ele); 

तो अब जब मैं ele.myCustomMethod() फोन यह असफल हो जायेगी, क्योंकि यह अभी तैयार नहीं है (एफएफ/आईई/सफारी में webcomponent-lite.js के साथ)

क्या मैं अभी कर रहा हूँ बहुलक तत्व ready() समारोह के अंदर कॉल this.fire('ready') है, और यह ele.addEventListener('ready',()=>{ele.myCustomMethod();})

को सुनने लेकिन यह लिखने के लिए सभी कोड बहुत मुश्किल हैं। और कभी-कभी मैं $(body).html('<my-custom-element />') का उपयोग करता हूं, और यह चीजों को और अधिक जटिल बनाता है।

मेरा प्रश्न है: क्या ऐसा करने का कोई बेहतर तरीका है?

धन्यवाद।

+0

जब आप कहते हैं कि 'ele.myCustomMethod()' असफल हो जायेगी, यह असफल है, क्योंकि यह अनिर्धारित रहता है या कि समारोह के भीतर समस्या है? – Kable

+0

@ केबल: यह असफल रहा क्योंकि यह अपरिभाषित है। यह अपरिभाषित है क्योंकि, मेरा मानना ​​है कि, Google बहुलक (या वेबकंपोनेंट पॉलीफिल) ने इसे अभी तक शुरू नहीं किया है। – garyx

+0

क्या आपको कोई जवाब मिला? आपका समाधान वही है जो मैं आया था और मैं इसके बारे में भी बहुत खुश नहीं हूं। – three

उत्तर

-2

आप पहले विंडो पर WebComponentsReady ईवेंट को सुनने का प्रयास कर सकते हैं।

स्रोत: https://github.com/webcomponents/webcomponentsjs#webcomponentsready

+1

धन्यवाद। मैंने यह सुन लिया। लेकिन प्रश्नों में समस्या तब होती है जब मैं फ्लाई पर तत्व जोड़ता हूं। मुझे नहीं लगता कि यह फिर से 'WebComponentsReady' ईवेंट को फिर से आग लगा देता है – garyx

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