2011-12-02 7 views
5

आप स्टोर के अनूठे उदाहरण कैसे बनाते हैं और उन्हें विचारों के लिए असाइन करते हैं (यदि आवश्यक हो तो मैं अद्वितीय दृश्य और/या नियंत्रक बनाने के साथ ठीक हूं)?एक्सटी जेएस 4 - एकाधिक स्टोर इंस्टेंस कैसे बनाएं और विचारों को असाइन करें? (एमवीसी)

एक साधारण उपयोग केस - मैं प्रत्येक में एक स्टोर से रिकॉर्ड्स की एक सूची के साथ कई ग्रिड (उसी प्रकार के) को खोलना चाहता हूं। प्रत्येक ग्रिड को अपने स्वयं के स्टोर इंस्टेंस की आवश्यकता होगी, क्योंकि इसमें रिकॉर्ड की अपनी सूची हो सकती है, यह स्वयं फ़िल्टरिंग इत्यादि हो सकती है।

मैंने कोशिश की, लेकिन यह काम नहीं करता है, मेरी ग्रिड आकर्षित नहीं होती:

var theView = Ext.create('App.view.encounter.List'); 
    theView.title = 'WORC Encounters'; 
    var theStore=Ext.create('App.store.Encounters'); 
    theView.store=theStore; 
    tabhost.add({title:'WORC',items:theView}); 

    var theView = Ext.create('App.view.encounter.List'); 
    theView.title = 'NC Encounters'; 
    var theStore2=Ext.create('App.store.Encounters'); 
    theView.store=theStore2; 
    tabhost.add({title:'NC',items:theView}); 
+0

हाय, मुझे भी ऐसी ही स्थिति में हूँ। क्या आपको इसका कोई जवाब मिला है? – Shekhar

+0

नहीं, दुर्भाग्यवश इसके लिए और कई अन्य कारणों से मैंने अपने extjs विकास को पकड़ पर रखा है और एक अलग मंच (गैर जेएस आधारित) का उपयोग कर रहा हूं। –

+0

उत्तर स्वीकार करें। –

उत्तर

3

जब घटक प्रारंभ होता है (या इससे पहले) आपको स्टोर को असाइन करने की आवश्यकता होती है। InitComponent में। आप उदाहरण के विशिष्ट के लिए

//Create the store 
var theStore = Ext.create('App.store.Encounters'); 
//Create the view 
var theView = Ext.create('App.view.encounter.List', { 
    store: theStore 
}); 

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

Ext.define('classname', { 
    extend: 'Ext.grid.Panel', 
    //... 
    initComponent: function() { 
     var me = this; 

     var theStore = Ext.create('App.store.Encounters'); 
     Ext.apply(me, { 
      store: theStore 
     }); 

     me.callParent(); 
    } 
    //... 
}); 

आप इसे इस तरह भी कर सकता है

var theStore = Ext.create('App.store.Encounters'); 
var theView = Ext.create('App.view.encounter.List', { 
     title: 'WORC Encounters', 
     store: theStore 
}); 
tabhost.add({title:'WORC',items:theView}); 


var theStore2=Ext.create('App.store.Encounters'); 
var theView2 = Ext.create('App.view.encounter.List', { 
     title: 'NC Encounters', 
     store: theStore2 
}); 
tabhost.add({title:'NC',items:theView2}); 
+0

मुझे 1 स्टोर दिखाई देता है, तो दूसरा कहां है? –

+0

आप अपने दूसरे दृश्य में दूसरी दुकान को परिभाषित करते हैं, यह काम करने का एक ही तरीका है। एक ही दृश्य में दूसरे स्टोर को परिभाषित करने का कोई उपयोग नहीं है ... –

+0

ठीक है, तो बस मुझे समझने में मदद करने के लिए, ऐसा लगता है कि आपके कोड और मेरा "Ext.apply" है, सही है? –

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