extjs - नियंत्रक से दूसरे दृश्य को डेटा पास करना और सिंचन स्पर्श में लेबल का मान सेट करना




sencha-touch-2 (3)

मेरे पास एक नियंत्रक है, और मैं अगले दृश्य पर एक साधारण स्ट्रिंग मान देना चाहता हूं।

इसके लिए, मैं इस तरह से दृश्य बना रहा हूँ।

    var nextView= Ext.create('MyApp.view.NextView',{
        content: 'value'
    });
    Ext.Viewport.add(nextView);
    Ext.Viewport.animateActiveItem(nextView,{type: 'slide', direction: 'left'});

NextView पर , मेरे पास एक लेबल है, और मैं लेबल के HTML गुण को उस मान पर सेट करना चाहता हूं जो मैं नियंत्रक से गुजर रहा हूं। अर्थात। 'मान'।

मेरा अगला दृश्य इस तरह दिखता है

Ext.define('MyApp.view.NextView', {
    extend: 'Ext.form.Panel',
    config: {
        content: 'null',
        items: [
            {
                xtype: 'label',
                html: 'value'
            }
        ]
    }
});

मुझे यकीन नहीं है कि यहां से कैसे आगे बढ़ना है मेरे पास एक रूप के रूप में NextView नहीं हो सकता है मुझे इस स्थिति में एक स्ट्रिंग मान को पारित करने की आवश्यकता है इस को प्राप्त करने का सबसे अच्छा तरीका क्या है?


Answers

इस तरह से कॉन्फ़िग डेटा का उपयोग initialize विधि को initialize करें का प्रयोग करें:

Ext.define('MyApp.view.NextView', {
    extend: 'Ext.form.Panel',
    config: {
        content: 'null',
        items: [
            {
                xtype: 'label',
                html: 'value'
            }
        ]
    },
    initialize : function(){
        this.callParent();
        var val = this.config.content;
        this.down('label').setHtml(val);
    }
});

पी.एस. अपने पसंदीदा चयनकर्ता को down फ़ंक्शन में उपयोग करने के लिए स्वतंत्र महसूस करें


मुझे पता है कि सवाल का उत्तर दिया गया है। लेकिन मैं सिर्फ एक नियंत्रक से डेटा को देखने के लिए (दृश्य के कन्स्ट्रक्टर का उपयोग करके) पास करने का एक बहुत ही स्वाभाविक तरीका है। मैं इसे अपने ऐप के लिए वेब डेस्कटॉप के एकीकरण में उपयोग करता हूं

नियंत्रक में, दृश्य के निर्माता को डेटा के रूप में पास करें:

loiTab = Ext.create('Iip.view.giips.admission.DetailedLoiTab', {closable: true, selectedLoiData: selected[0].data});

इस दृश्य में, एक निर्माता के रूप में स्पिन करें:

constructor: function(selectedLoiData) {
    Ext.applyIf(this, selectedLoiData);
    this.callParent();
},

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

initComponent: function(){
    console.log(this.selectedLoiData);
}

मुझे पूरा यकीन नहीं है कि यह मुद्दा सीधे ओएस से संबंधित है, जैसे कि ऐप एंड्रॉइड, आईओएस आदि पर चल रहा है।

यदि आप कम से मध्यम क्षमता हार्डवेयर डिवाइस पर सेन्चा टच 2 रसोई सिंक उदाहरण का परीक्षण करते हैं, जैसे सैमसंग गैलेक्सी, तो आपको कम प्रदर्शन के मुद्दों का अनुभव होगा।

हालांकि, यदि आप बेहतर हार्डवेयर डिवाइस जैसे एचटीसी डिजायर 2 (आईफोन 4 एस के करीब कुछ) में जाते हैं, तो आप देखेंगे कि प्रदर्शन बेहतर हो जाता है।

मुझे नहीं लगता कि एंड्रॉइड की आईओएस की तुलना में प्रदर्शन से संबंधित सेन्चा टच 2 पर सीमाएं हैं। मुझे लगता है कि कुछ डिवाइस दूसरों की तुलना में बेहतर हैं (आईओएस हमेशा उच्च स्तरीय प्रदर्शन डिवाइस, आईफोन / आईपैड पर चलता है)।

और हमारे दुखों के लिए, लोगों को कम कीमत और हार्डवेयर सक्षम लोगों के मालिक होते हैं।