2013-02-07 49 views
7

1) में एक तत्व को एचटीएमएल स्थापित करने के लिए?कैसे कैसे <code>HTML</code> स्थापित करने के लिए पहले से ही पैनल या किसी अन्य तत्व बनाया करने के लिए ExtJS

मैं एक नौसिखिया हूं। मैं HTML के अंदर कुछ सामग्री स्थापित करने के लिए नीचे दिए गए कोशिश की

var clickedElement = Ext.getCmp('id').el.child('>'); 
clickedElement.setHTML("hello"); 

ऊपर ठीक काम कर रहा है, लेकिन समस्या यह है कि के रूप में पैनल में कई div इसके अंदर का है .. ऊपर दृष्टिकोण उन के अंदर एचटीएमएल मिटा रहा है (यानी div के) और इसे उपरोक्त सामग्री के साथ बदलना।

मैंने क्रोम के माध्यम से देखा कि पैनल में तीन नेस्टेड div है। मैं सफलतापूर्वक html सामग्री द्वारा जोड़ा जा रहा है और यह भी div के दूर नहीं करता

var clickedElement = Ext.getCmp('id').el.child('>').child('>'); //two times child 

मैं ऊपर दृष्टिकोण की कोशिश की तो: तो, अगर मैं इसे करने के लिए HTML जोड़ना चाहते हैं तो मैं नीचे की तरह कुछ देने के लिए की जरूरत है। यहां समस्या यह है कि, मैं अतिरिक्त सामग्री नहीं देख सकता (शायद कुछ डिफ़ॉल्ट स्टाइलिंग के कारण, मैं देख सकता हूं कि सामग्री क्रोम कंसोल में जोड़ा जा रहा है।)

मैं सिर्फ यह पूछ रहा हूं कि कोई कुशल तरीका है या नहीं पैनल में एचटीएमएल जोड़ने का। मेरी राय में, यह बहुत आसान दृष्टिकोण होना चाहिए जो मैं यहां जटिल हूं।

2) यह जांचने के लिए कि क्या तत्व में कोई विशेष बच्चा है या नहीं?

मान लीजिए, उदाहरण के लिए, यदि मैंने इसे बनाने के दौरान अपने पैनल में एक बच्चे (आइटम) के रूप में extjs Button जोड़ा है। (जो मैं कर सकता हूँ)। यह जांचने के लिए कि क्या पैनल में विशेष तत्व है (यानी यहां बटन)?

यहां पूछने से पहले, मैंने बहुत कुछ खोजा और कुछ हद तक सापेक्ष पाया लेकिन मेरी समस्या के लिए उपयोगी नहीं link

उत्तर

13

ExtJS में अधिकांश घटकों को केवल एक शरीर तत्व माना जाता है, भले ही आप डोम पर अधिक देखें। JQuery के विपरीत जो मूल रूप से मार्कअप के ऊपर जोड़ा गया है ExtJS स्वयं द्वारा संपूर्ण मार्कअप उत्पन्न करता है।

आपके सवाल का अब, एक घटक के एचटीएमएल अद्यतन करने के लिए आप बस update() विधि है कि

Ext.getCmp('id').update('hello'); 

की तरह कॉल कर सकते हैं देखें JSFiddle

+0

धन्यवाद यह काम किया। कृपया इस पोस्ट में मेरे दूसरे प्रश्न का उत्तर भी दें .. :) –

+1

@ इसके लिए आप घटक की तलाश करेंगे और डोम में कोई तत्व नहीं। Ext.getCmp ('id') की तरह। नीचे ('बटन [text = enter]'); – sra

+0

ठीक है .. मैंने आपके द्वारा उल्लिखित अद्यतन() का उपयोग किया है, लेकिन यह मेरी पोस्ट में उल्लिखित एक जैसा काम करता है यानी 'var clickedElement = Ext.getCmp (' id ')। El.child ('> '); क्लिक किया गयाElement.setHTML ("हैलो"); इसलिए, यह अंदरूनी 'div' को भी हटा रहा है। और अब जब मैं एचटीएमएल प्राप्त करने की कोशिश करता हूं, तो मेरा पूरा कोड गड़बड़ हो रहा है। क्योंकि कुछ तत्वों में नेस्टेड div (यानी सामग्री परिवर्तित तत्व) नहीं है और शेष में नेस्टेड div है ... –

1
Ext.ComponentQuery.query('#itemIdOfComponent').update('new value'); 

बजाय पहचान-पत्र निर्धारित न करें घटकों पर एक आइटम आईडी कॉन्फ़िगरेशन जोड़ें और Ext.ComponentQuery.query के लिए प्रलेखन देखें।