所以我panel
(可以稱之爲fooPanel
)含有grid
(讓我們稱之爲如果fooGrid
,其中有一些store
)。 fooPanel
可以插入一些tabpanel
。所以問題是,tabpanel
可能包含兩個(或更多)fooPanel
的實例,並帶有一些不同的參數。我認爲這個問題很明顯。因爲面板上的fooGrids
具有相同的stores
,只要我重新加載一個商店,兩個fooGrids
正在重新加載。 (因爲他們有相同的stores
)。有針對這個的解決方法嗎?或者我應該限制用戶只打開一個fooPanel
的實例,每tabpanel
問題與同一家商店格Ext JS的
3
A
回答
7
除了每個網格創建一個商店之外,沒有簡單的解決方案。如果您不想創建商店的多個實例的原因是爲了避免多次加載,您可以在代理級別上進行某種緩存。
編輯如何創建多個商店爲您的網格實例
您可以創建存儲實例(即使用Ext.create('My.Store')
)你自己在你的initComponent
方法電網:
Ext.define('My.Store', {
extend: 'Ext.data.Store'
,fields: ['name']
,proxy: {
type: 'memory'
,reader: 'array'
}
,data: [['Foo'],['Bar'],['Baz']]
});
Ext.define('My.Grid', {
extend: 'Ext.grid.Panel'
,columns: [{dataIndex: 'name'}]
,initComponent: function() {
// /!\ Do that BEFORE calling parent method
if (!this.store) {
this.store = Ext.create('My.Store');
}
// ... but don't forget to call parent method
this.callParent(arguments);
}
});
// Then I can create multiple grids, they will have their own store instances
Ext.create('My.Grid', {
renderTo: Ext.getBody()
,height: 200
});
Ext.create('My.Grid', {
renderTo: Ext.getBody()
,height: 200
});
或者你可以在創建時指定新的商店實例:
Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody()
,height: 200
,columns: [{dataIndex: 'name'}]
,store: Ext.create('My.Store') // one instance
});
Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody()
,height: 200
,columns: [{dataIndex: 'name'}]
,store: Ext.create('My.Store') // two instances!
});
但是,就我而言,我通常不打算創建完整的商店定義。我在模型中配置代理,並使用該模型使用內聯存儲配置(內聯配置將轉換爲它們自己的實例,在Ext4中)。例如:
Ext.define('My.Grid', {
extend: 'Ext.grid.Panel'
,columns: [{dataIndex: 'name'}]
// inline store configuration
,store: {
// The model takes care of the fields & proxy definition
model: 'My.Model'
// other params (like remoteSort, etc.)
}
});
// Now I can create plenty of My.Grid again, that won't interfere with each other
1
這篇文章可以幫助你
Ext.define('App.store.MyStore', {
extend : 'Ext.data.Store',
alias : 'store.app-mystore', // create store alias
// ...
});
Ext.define('App.view.MyCombo', {
extend : 'Ext.form.field.ComboBox',
xtype : 'app-mycombo',
requires : [
'App.store.myStore'
],
// combo config
store : {
type : 'app-mystore' // store alias; type creates new instance
}
});
1
在ExtJS的5,你可以採取的連鎖店的優勢。這樣,您可以擁有一個源存儲,而其他商店則使用不同的過濾器查看同一商店。
http://docs.sencha.com/extjs/5.0.0/whats_new/5.0/whats_new.html
相關問題
- 1. 的Ext JS 4:多個網格顯示來自同一家商店
- 2. Ext JS 4 - 共享相同商店的網格實例
- 3. 超過200家商店與多商店和相同的產品?
- 4. Ext JS商店和複雜對象
- 5. 煎茶EXT-JS 4:如何在商店
- 6. Ext JS的網格selModel電網的商店更新
- 7. Extjs問題與商店
- 8. Azman與多家商店
- 9. Ext JS - 使用篩選器預配置網格商店
- 10. Ext JS加載店
- 11. Exp:resso商店一般問題
- 12. EXT JS網格SelModel複選框問題
- 13. 店面上的Ext js autoDestroy
- 14. 如何等待另一家商店在一家商店發生的調度
- 15. 貝寶與多家商家的網上商店
- 16. 可能Ext JS使用商店沒有附加到網格呈現網格列?
- 17. 如何將商店注入到mobX的另一家商店
- 18. Ext JS範圍問題
- 19. Ext JS -DOM查詢問題
- 20. Ext JS舍入問題
- 21. Ext JS範圍問題
- 22. 2與同一商店的TreePanel?
- 23. Google Play商店佈局。問題與apktool
- 24. Sencha觸摸問題與商店
- 25. 刷新未連接到商店的Ext JS面板?
- 26. 商店中未定義的變量:[]和視圖:[] - Ext-JS 4.1.1a
- 27. Ext JS - 克隆進出商店的最佳方式是什麼?
- 28. 刷新JSON商店的每60秒 - EXT JS 4
- 29. 如何映射/ URL/{} pathvariables到Ext JS的商店
- 30. Ext JS:將變量分配給商店中的數據
是否有你需要更多的情況下,任何的理由?如果是這樣,只需更改每個實例的商店 – sra
是的,這是有原因的。我如何'爲每個實例更改商店'? – Dimitri