2013-01-31 16 views
6

मैं एक बदलाव का बना रहा हूं की सामग्री में एक सर्वर साइड html फ़ाइल लोड हो रहा है और मैं .html फ़ाइल से मेरे बदलाव का लोड करने के लिएएक पैनल

मुझे मिल गया है का फैसला किया

Ext.define('MeridianCRM.dialogs.recentСhanges.recentСhanges', { 
    extend : 'Ext.window.Window', 
    title : 'Последние изменения на сайте', 
    modal : true, 
    height : 400, 
    width : 500, 
    resizable : false, 
    html: 'changes.html', 

    buttons: [{ 
     text: 'Закрыть', 
     handler: function() { 
      this.up('window').close(); 
     } 
    }] 
}); 

कैसे मैं कर सकता हूँ इसका समाधान करो ? (एचटीएमएल: 'change.html') मैं अपनी विंडो में एचटीएमएल कैसे लोड कर सकता हूं?

उत्तर

5

आपको एचटीएमएल को असीमित रूप से लोड करने की आवश्यकता होगी, फिर इसे अपने घटक में इंजेक्ट करें। तो:

Ext.Ajax.request({ 
    url: 'changes.html', 
    success: function(response){ 
     // response.responseText will have your html content 
     // you can then feed it into your component using update() 
    } 
}); 

तो तुम आईडी के साथ आप घटक यह घोषणा करते हैं:

Ext.define('MeridianCRM.dialogs.recentСhanges.recentСhanges', { 
    extend : 'Ext.window.Window', 
    title : 'Последние изменения на сайте', 

    id:  : 'my-log', 

    ... 
}); 

फिर आप कर सकते हैं:

Ext.Ajax.request({ 
    url: 'changes.html', 
    success: function(response){ 
     Ext.getCmp('my-log').update(response.responseText); 
    } 
}); 

आप `यह अपने पैनल में एकीकृत कर सकते हैं 'तो जैसे:

Ext.define('MeridianCRM.dialogs.recentСhanges.recentСhanges', { 
    extend : 'Ext.window.Window', 
    title : 'Последние изменения на сайте', 

    id:  : 'my-log', 

    listeners: { 
     'render': function() 
      { 
       Ext.Ajax.request({ 
        url: 'changes.html', 
        success: function(response){ 
         Ext.getCmp('my-log').update(response.responseText); 
        } 
       });     
      } 
    } 

    ... 
}); 

नोटिस हालांकि, यो यदि आपके पास लौटाए गए HTML में <head> टैग शामिल है (जैसे extjs पृष्ठ में पहले से ही एक है) तो आपको समस्याएं हो सकती हैं।

loader: { 
    url: 'changes.html', 
    autoLoad: true 
}, 

जो इस वैश्विक कोड में परिणाम होगा:

+0

मैं इसे अपने 'MeridianCRM.dialogs.recentСhanges.recentСhanges' कक्षा में कैसे एकीकृत कर सकता हूं? – davetoxa

+0

मुझे इसके साथ कोई समस्या नहीं है, change.html में केवल 'li' टैग – davetoxa

+0

उत्तर अपडेट किया गया है। – Izhaki

9

एक बेहतर समाधान पैनल के loader config की घोषणा का उपयोग करता है नहीं है। क्योंकि हम एक listener, और न ही एक Ext.Ajax कॉल को परिभाषित करने की जरूरत नहीं है

Ext.define('MeridianCRM.dialogs.recentСhanges.recentСhanges', { 
    extend : 'Ext.window.Window', 
    title : 'Последние изменения на сайте', 
    modal : true, 
    height : 400, 
    width : 500, 
    resizable : false, 
    loader: { 
     url: 'changes.html', 
     autoLoad: true 
    }, 
    buttons: [{ 
     text: 'Закрыть', 
     handler: function() { 
      this.up('window').close(); 
     } 
    }] 
}); 

यह बेहतर है।

+1

+1 क्योंकि मैंने लोडर कक्षाएं लिखी हैं! –

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