rawData undefined for first POST action ExtJS -
i trying fill form server response data obtained whenever click on name in grid. part, have succeeded in doing this. however, reason, first time click on name in grid, "undefine" store.proxy.reader.rawdata. doesn't matter name click first, this. subsequent clicks return expected json string. using firebug me solve problem.
the following code store 'persons' make ajax request:
ext.define('cx.store.persons', { extend: 'ext.data.store', model: 'cx.model.personm', autoload: false, proxy: { type: 'ajax', actionmethods: { update:'post' }, url: '.../censusxphp/app/store/getuseridinfo.php', reader: { type: 'json' } } });
the following function within controller above store loaded.
showmess: function(grid,record) { var tempid = record.get('transid'); //grab translation id var name = record.get('fname') + ' ' + record.get('lname'); //grab name of current user var store = this.getpersonsstore(); store.load( { params:{cid:tempid} }) var info = store.data; console.log(info) console.log(store.proxy.reader.rawdata) } };
i printing 2 things console: store.data object , store.proxy.reader.rawdata. printout below shows post , console print statements first 2 click events:
> post http:app/store/getuseridinfo.php?_dc=1339179358498 > object { items=[0], map={...}, keys=[0], more...} > > post http:/app/store/getuseridinfo.php?_dc=1339179359680 > object { items=[1], map={...}, keys=[1], more...} object { id="123", bday="1/5/89", paypref="credit", more...}
i clicked on same name both times. can see, store.data object says has 0 items during first click , rawdata "undefine; however, when expand information store.data object first click can see there indeed item json string (it same info second click item because clicked on same name twice). printout below shows this:
> $classname "ext.util.mixedcollection" >. >. >. > -items: [object {internalid="123", raw={...}, data={...}, more...}] > --0: object {internalid="123", raw={...}, data={...}, more...} > ---$classname: "cx.model.personm" > ---$inheritablestatics: ["setproxy","getproxy", "load"] > ---alternateclassname: "ext.data.record" > ---associations: object { items=[0], map={...}, keys=[0], more...} > ---onfig: object {} > ---data: object { bday="1/5/89", street="123 main st", city="los angeles", more...} > ---defaultproxytype: "ajax" > ---dirty: false > ---editing: false >. >. >.
i have no idea what's going on. have been working extjs 2 weeks difficult me see subtle errors (or glaring ones ). please point me in right direction?
thanks help! -k
store.load
method asynchronous, after call starts load data , returns control. when invoke showmess
first time, rawdata
undefined, because data not yet loaded @ point. each call displays result previous request. use load
event example:
showmess: function(grid,record) { var tempid = record.get('transid'); //grab translation id var name = record.get('fname') + ' ' + record.get('lname'); //grab name of current user var store = this.getpersonsstore(); store.load( { params:{cid:tempid} }); store.on('load', function() { var info = store.data; console.log(info); console.log(store.proxy.reader.rawdata); }, this, { single: true }); }
Comments
Post a Comment