I’ve got an ExtJS Store defined as follows:
Ext.create('Ext.data.Store', { storeId: 'testStore', fields: ['codeCampYearId', 'title'], autoLoad: true, pageSize: 9999, proxy: { type: 'rest', url: '/rest/SessionExt', reader: { type: 'json', root: 'data' } } });
I have some JSON data in a local file that I want to use and I don’t want to change the URL. Using the ExtJS SimManager, I can make some simple code changes and my ExtJS ajax request will get redirected for me. Below is the code that takes care of it.
Ext.application({
requires: [
'Ext.container.Viewport',
'Ext.grid.column.Date',
'Ext.ux.ajax.SimManager',
'Ext.ux.ajax.Simlet',
'Ext.data.proxy.Proxy',
'Ext.data.proxy.Ajax',
'Ext.layout.container.Fit',
'Ext.grid.Panel',
'Ext.data.Store',
'Ext.data.reader.Json'
],
name: 'Fiddle',
getJsonData: <span class="kwrd">function</span> (dataLocation, whenFinishedExecuteThis) {
<span class="rem">//return [{ id: 10, title: 'title1', codeCampYearId: 101 }, { id: 20, title: 'title2', codeCampYearId: 101 }];</span>
Ext.Ajax.request({
url: dataLocation,
success: <span class="kwrd">function</span> (response) {
whenFinishedExecuteThis(Ext.JSON.decode(response.responseText));
}
});
},
launch: <span class="kwrd">function</span> () {
<span class="kwrd">this</span>.getJsonData(<span class="str">'/Data/sessionext.json'</span>, <span class="kwrd">function</span> (theData) {
<span class="kwrd">var</span> myData = theData.data;
Ext.ux.ajax.SimManager.init({
delay: 600
}).register({
<span class="str">'/rest/SessionExt'</span>: {
stype: <span class="str">'json'</span>, <span class="rem">// use JsonSimlet (stype is like xtype for components)</span>
data: myData
}
});
Ext.create(<span class="str">'Ext.container.Viewport'</span>, {
layout: <span class="str">'fit'</span>,
items: [
{
xtype: <span class="str">'sessions'</span>
}
]
});
});
Ext.create(<span class="str">'Ext.data.Store'</span>, {
storeId: <span class="str">'testStore'</span>,
fields: [<span class="str">'codeCampYearId'</span>, <span class="str">'title'</span>],
autoLoad: <span class="kwrd">true</span>,
pageSize: 9999,
proxy: {
type: <span class="str">'rest'</span>,
url: <span class="str">'/rest/SessionExt'</span>,
reader: {
type: <span class="str">'json'</span>,
root: <span class="str">'data'</span>
}
}
});
<span class="kwrd">var</span> myPanel = Ext.create(<span class="str">'Ext.grid.Panel'</span>, {
title: <span class="str">'Session Data'</span>,
store: Ext.data.StoreManager.lookup(<span class="str">'testStore'</span>),
scroll: <span class="kwrd">true</span>,
columns: [
{ text: <span class="str">'title'</span>, dataIndex: <span class="str">'title'</span>, flex: 1 },
{ text: <span class="str">'codeCampYearId'</span>, dataIndex: <span class="str">'codeCampYearId'</span> },
{ text: <span class="str">'id'</span>, dataIndex: <span class="str">'id'</span> },
]
});
Ext.create(<span class="str">'Ext.container.Viewport'</span>, {
layout: <span class="str">'fit'</span>,
items: [
myPanel
]
});
}
});
Hope this helps!