2013-01-02 12 views
6

मैं अपना आवेदन एक दृश्य से कैसे प्राप्त कर सकता हूं? उदाहरण के लिए मेरे पास एक आवेदन Boo है और एक दृश्य है जिसका नाम Boo.view.Foo.List है और मैं को List दृश्य में प्राप्त करना चाहता हूं।एप्लिकेशन को देखने से कैसे प्राप्त करें?

संपादित करें:

इस कोड को देखें, और लाइन पर देखने के 20.

Ext.define('Boo.view.Foo.List', { 
    extend: 'Ext.panel.Panel', 
    model: 'Boo.model.FooModel', 
    alias: 'widget.foolist', 
    store: 'FooListStore', 
    initComponent: function() { 
     this.columns = [ 
      { 
       text: "Hello world", 
       dataIndex: 'Time', 
       flex: 1 
      }, 
      { 
       xtype: 'actioncolumn', 
       width: 50, 
       items: [{ 
        icon: 'cancel.png', 
        tooltip: 'Cancel', 
        handler: function (grid, rowIndex, colIndex, col, e) { 
         //Now I need to get the application here, for example with self.getApplication() or something like this. 
        } 
       }] 
     }]; 

     this.callParent(arguments); 
    } 
}); 
+0

आप और अधिक व्याख्या कर सकते हैं का शुभारंभ-विधि में निम्नलिखित पंक्ति जोड़? –

+0

फिर से कोड देखें। –

उत्तर

10

आप इस appProperty

Ext.application({ 
    name: 'MyApp', 
    appProperty: 'Current' 
}); 

अब आप

कॉल कर सकते हैं का उपयोग कर सकते हैं archieve
MyApp.Current 

कहीं से भी MyApp नामस्थान विंडो (वैश्विक) दायरे में प्रतिरोध का कारण बनता है।

किसी भी संस्करण के लिए 4.1.3 से पहले आवेदन

YourAppName[this.appProperty] = this; 
+0

मुझे नहीं लगता कि यह दृश्य में एप्लिकेशन प्राप्त करने के लिए एक अच्छा तरीका है। इस विधि के साथ, मैं पृष्ठ के सभी एप्लिकेशन तक पहुंच सकता हूं (मान लें कि मेरे पास पृष्ठ में एक से अधिक ऐप हैं) लेकिन मैं दृश्य में संबंधित ऐप प्राप्त करना चाहता हूं। क्या यह पर्याप्त स्पष्ट है? –

+0

@AfshinMehrabani वर्तमान में आप इवेंटबस के डिजाइन के कारण केवल एक आवेदन कर सकते हैं (4.2 के साथ बदल दिया जाएगा)। और यह कोई तरीका नहीं है यह एक संदर्भ है जो आवेदन के नामस्थान पर लागू होता है। टेथिस आपके आवेदन के वर्तमान उदाहरण को सेन्चा द्वारा अनुशंसित करने का तरीका है और यह भी स्वच्छ और तेज़ है। मैं इसे संग्रहीत करने के लिए किसी भी तेज या साफ तरीके की कल्पना नहीं कर सकता। – sra

+0

@AfshinMehrabani केवल नियंत्रक जानता है कि यह किस एप्लिकेशन से संबंधित है। वर्तमान में प्रत्येक नियंत्रक के पास एक संपत्ति 'एप्लिकेशन' है जिसका आप इसका उपयोग कर सकते हैं। आप समय पर दृश्य पर एक संदर्भ सेट कर सकते हैं। वैसे भी मैं समझ नहीं पा रहा हूं क्योंकि आपका विचार एप्लिकेशन के नाम से एप्लिकेशन से जुड़ा हुआ है, इसलिए ऐपप्रोपर्टी का उपयोग इसे हासिल करने का सबसे साफ तरीका होगा। – sra

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