このような典型的な店から
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'firstName', type: 'string'},
{name: 'lastName', type: 'string'},
{name: 'age', type: 'int'},
{name: 'eyeColor', type: 'string'}
]
});
var myStore = Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url : '/users.json',
reader: {
type: 'json',
root: 'users'
}
},
autoLoad: true
});
MyStoreから生のJsonを取得することは可能ですか?
どうですか:
myStore.proxy.reader.rawData
受け入れられたソリューションは私の構成では機能しませんでした:ExtJs 4.1とメモリプロキシを備えたグリッド-グリッドにアイテムを追加した後、空に戻りました(そしてストアオブジェクトはそれを反映していました)。次のコードは、ストアのコンテンツをJSON文字列にエンコードするために機能しました。
var json = Ext.encode(Ext.pluck(store.data.items, 'data'));
乾杯!
これに対する解決策を見つけるのに何年もかかりましたが、これがうまくいく解決策の1つです。
myStore .on({ 'load': function (store, records, successful)
{
console.log(store.getProxy().getReader().rawData);
}
});
ストアが作成されると、プロキシリーダーrawData/jsonDataにアクセスできるようになります。アクセスするには、次のことを試してください。
store.on('load', function() {
console.log('store.proxy.reader.jsonData');
console.log(store.proxy.reader.jsonData);
}, this, { single: true });
Ext.data.Store({....
proxy: {
...
reader: {
**keepRawData: true,**
type: 'json',
rootProperty: 'root',
successProperty: 'success'
}
}
});
多分、あなたはこれで試すことができます:
var json = Ext.JSON.encode(myStore.getRange());
チャ!