我得到了一個商店的消息,它工作正常。商店創建作品,商店定義不
現在我需要相同的商店,但有不同的初始化,所以我想重用它。
前:
Ext.create('Ext.data.JsonStore', {
model: 'my.MessageModel',
storeId: 'importantStore',
autoLoad: true,
proxy: {
type: 'ajax',
url: 'ajax/ajAsProof.php',
actionMethods: {
read: 'POST'
},
reader: {
type: 'json',
root: 'messages',
idProperty: 'id'
},
writer: {
type: 'json',
writeAllFields: true,
allowSingle: false,
encode: true,
root: 'messages'
}
},
...
}
Ext.define('my.MessagesGrid', {
extend: 'Ext.grid.Panel',
store: 'myGrid',
...
}
Ext.create('my.MessageGrid', {
store:'importantStore',
renderTo: 'myGridId'
});
後:
Ext.define('my.ImportantStore', {
extend: 'Ext.data.JsonStore',
model: 'my.MessageModel',
autoLoad: true,
proxy: {
type: 'ajax',
url: 'ajax/ajAsProof.php',
actionMethods: {
read: 'POST'
},
reader: {
type: 'json',
root: 'messages',
idProperty: 'id'
},
writer: {
type: 'json',
writeAllFields: true,
allowSingle: false,
encode: true,
root: 'messages'
}
},
...
}
Ext.define('my.MessagesGrid', {
extend: 'Ext.grid.Panel',
store: 'myGrid',
...
}
var importantStore = Ext.create('my.ImportantStore', {
storeId: 'importantStore',
... // my custom settings to come here, like filters or parameters
});
Ext.create('my.MessageGrid', {
store:'importantStore',
renderTo: 'myGridId'
});
這種失敗。 Firefox/Firebug給我一個
TypeError: url is undefined ext-all-debug.js (line 14429)
this.$cache = dom.id ? Ext.cache[dom.id] : null;
所有定義在Ext.ready()調用中的同一個js文件中。使用ExtJS 4.2.1.883。
有什麼不對?這樣做,使網格可重用的工作正常,但與商店失敗。
1.你不應該聲明所有的js。 2.-您應該使用類似「MyApp.store.ImportantStore」的最佳問候 –
這是一個小型項目,基本上只考慮使用同一商店的2或3個網格,但使用不同的過濾選項。網格定義&創建在同一個文件中工作得很好,商店不會。任何想法可能導致它? – Tseng
即使只有幾個網格,我強烈建議您遵守Ext4 MVC –