javascript - ExtJS store with data-bound URL not re-evaluating data properties -
i've extjs 5 viewmodel contains store, json reader using ajax proxy.
the url of proxy relies on binding, substitutes in viewmodel info properties. appears evaluation of url property done first time viewmodel loads, , not when info property changes.
this code should illustrate i'm trying do, though missing parts (extends statements, etc.) brevity in post.
i define view model store:
ext.define('sample.viewmodel',{ extend:'ext.app.viewmodel', data:{ departmentid:0, categoryid:0 } stores:{ myitems:{ autoload:false, fields:['id','name','price'], proxy:{ type:'ajax', url:'/items/department/{departmentid}/category/{categoryid}', reader:{ rootproperty:'data', successproperty:'success' } } } } }
then view grid: (columns, etc. removed brevity)
ext.define('sample.view',{ // .... items:[{ xtype:grid, bind:'{myitems}' }] }
and controller changes view model info properties , reloads store:
ext.define('sample.viewcontroller',{ // ... handlesomeevent:function(){ var viewmodel = this.getviewmodel(); var store = viewmodel.getstore('myitems'); viewmodel.set('departmentid', 3); viewmodel.set('categoryid', 4); // desired behavior store.load(); // required workaround viewmodel.bind('/items/department/{departmentid}/category/{categoryid}', function(newurl){ store.load({url: newurl}) }); } });
without "required workaround" in controller logic store / grid tries pull info /items/department/0/category/0 (i.e. viewmodel info values @ time viewmodel instantiated).
i'd know how forcefulness extjs re-evaluate config properties (i.e. proxy url) when viewmodel info properties change.
much in advance!
the problem you're having viewmodel ticks on timer. time phone call load
, it's not evaluated calls set
. if didn't, you'd have binding trigger twice, 1 time when set departmentid
, sec time when set categoryid
.
you can forcefulness viewmodel tick calling notify
:
viewmodel.set('departmentid', 3); viewmodel.set('categoryid', 4); viewmodel.notify(); store.load();
javascript extjs viewmodel
No comments:
Post a Comment