2012-09-14 10 views
6

मुझे रनटाइम पर नव निर्मित बनाए गए मेनूइटम को जोड़ने की आवश्यकता है; तो मेरे कोड वर्तमान में लगता है कि:ExtJS: रनटाइम पर मेनू उदाहरण के लिए नया मेनूइटम जोड़ें

var myMenu = myCmp.query('mymenu')[0]; // retrieve my only Menu object 
var menuItem = Ext.create('Ext.menu.Item', { 
    itemId: 'myItemId', text: 'textGoesHere' 
}); 
myMenu.add(menuItem); 

मैं आइटम जोड़ने के लिए add method उपयोग कर रहा हूँ; लेकिन रन-टाइम पर मेनू आइटमों के साथ कुछ भी नहीं होता है। हालांकि डिबगिंग से पता चलता है कि नया आइटम वास्तव में मेनू उदाहरण के items कॉन्फ़िगरेशन में जोड़ा गया है।

remove method का उपयोग हालांकि रन-टाइम पर काम करता है।

प्रश्न: रनटाइम पर नया जोड़ा गया मेनूइटम शो कैसे बनाएं? मैं क्या खो रहा हूँ?

अद्यतन: उपर्युक्त कोड काम करता है; मेरे पास एक दोषपूर्ण स्विच स्टेटमेंट था जो तर्क के माध्यम से एक और पास कर रहा था, आखिरी बनाए गए मेनू इटैम को हटा रहा था।

+0

क्या आपने अभी एक कॉन्फ़िगरेशन लागू करने का प्रयास किया है? शायद एक बग है? असल में यह बिना किसी अतिरिक्त कॉल के बॉक्स के बाहर काम करना चाहिए। – sra

+0

@sra मैं आपसे सहमत हूं कि इसे बॉक्स से बाहर काम करना चाहिए। "* केवल एक कॉन्फ़िगरेशन लागू करें" से आपका क्या मतलब है? धन्यवाद। –

+0

मैंने एक उदाहरण पोस्ट किया जो काम करता है। अगर आपको additonal info/help – sra

उत्तर

5

टिप्पणी तक सामने लाना

ओपी लिखा

ठीक मैं इस मुद्दे पर नज़र रखने; मेरे पास एक दोषपूर्ण स्विच स्टेटमेंट था जो था जिससे तर्क के माध्यम से दूसरा पास हो गया, अंतिम निर्मित मेनू इटैम को हटा दिया गया। फिर भी मैं आपके उत्तर को सही के रूप में चिह्नित करूंगा क्योंकि यह (कॉन्फ़िगरेशन ओबीजे पास करके) काम करता है।


इस उदाहरण काम करता है:

var menu = Ext.create('Ext.menu.Menu', { 
    width: 100, 
    height: 100, 
    floating: false, // usually you want this set to True (default) 
    renderTo: Ext.getBody(), // usually rendered by it's containing component 
    items: [{ 
     text: 'icon item', 
     iconCls: 'add16' 
    },{ 
     text: 'text item' 
    },{ 
     text: 'plain item', 
     plain: true 
    }] 
}); 

menu.add({text:'test'}); 

मैं काफी यकीन नहीं है लेकिन एपीआई के अनुसार मेनू डिफ़ॉल्ट प्रकार के रूप में पैनल है जब आप menu को देखो, लेकिन यह MENUITEM अनुसार हो रहा है menuitem API
पर यह थोड़ा उलझन में हो सकता है।

+0

की आवश्यकता है तो मुझे बताएं ठीक है, मैं इस मुद्दे को ट्रैक करता हूं; मेरे पास एक दोषपूर्ण 'स्विच' कथन था जो तर्क के माध्यम से एक और गुजर रहा था, आखिरी बनाए गए मेनू इटैम को हटा रहा था। फिर भी मैं आपके उत्तर को सही के रूप में चिह्नित करूंगा क्योंकि यह भी काम करता है (कॉन्फ़िगर ओबीजे पास करके)। –

+1

@JosvicZammit जब तक मैं मदद कर सकता हूं और यह अब काम करता है;) – sra

+0

@sra क्या आप ओपी के उत्तर * काम * के रूप में शीर्ष पर कहने के उत्तर को अपडेट कर सकते हैं? पहली बार जब मैं यहां आया था तब मैंने टिप्पणियां नहीं पढ़ीं और एक जंगली हंस चेस पर एक कॉन्फ़िगर ऑब्जेक्ट के रूप में जोड़े गए मेनू आइटम पर उत्सुक प्रतिपादन को मजबूर करने की कोशिश कर रहा था। स्पष्टीकरण के लिए, ओपी का दृष्टिकोण * बिल्कुल * जैसा काम करता है। –

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