How can I fire a function in viewcontrol from map event in ExtJS? -
i have mvvm app openlayers map. when doing specific event on map (like finishing draw) want fire "add" event of extjs grid.
i've tried accessing viewcontroller using myapp.app.getcontroller('itemscontroller')
error :
unrecognized class name / alias: app.controller.itemscontroller
how can call viewcontroller method or fire event of grid item starting adding items grid ?
ext.define('app.view.grids.itemsviewcontroller', { extend: 'ext.app.viewcontroller', alias: 'controller.itemscontroller', onnewclick: function (button, evt) { var newitem = ext.create('app.model.items.item', { id:'', name:'' }); this.isnewrecord = true; this.newrecordid = newevent.get('id'); var grid = this.lookupreference('itemsgrid'); grid.getstore().insert(0, newevent); grid.getplugin('itemsroweditingplugin').startedit(newevent); } });
view definition:
ext.define('app.view.grids.itemsgrid', { extend: 'ext.panel.panel', alias: 'widget.items', xtype: 'itemsgrid', reference: 'items', requires: [ 'app.view.grids.itemsviewcontroller', 'app.view.grids.itemsviewmodel2' ], viewmodel: { type: 'itemsviewmodel' }, controller: 'itemscontroller', session: true, width: '100%', height: 500, layout: { type: 'vbox', align: 'stretch' }, items: [ { xtype: 'grid', itemid: 'itemsgrid', reference: 'itemsgrid', width: '100%', title: 'items', flex: 5, height: 350, maxheight: 350, scrollable: 'y', header: true, viewconfig: { striperows: true }, bind:{ store: '{itemsstore}' }, columns: [ { dataindex: 'id', text: 'id' //,hidden: true }, { dataindex: 'hours', text: 'hours', editor: { xtype: 'numberfield', minvalue: 1, allowblank: false } }, { dataindex: 'address', text: 'address', flex: 1, editor: { xtype: 'textfield', allowblank: false } }, { dataindex: 'name', text: 'name', flex: 1, editor: { xtype: 'textfield', allowblank: false } } ], seltype: 'rowmodel', plugins: [ { ptype: 'rowediting', pluginid: 'itemsroweditingplugin', clickstoedit: 1 } ] }] });
try accessing controller this:
ext.componentquery.query('itemsgrid')[0].getcontroller();
Comments
Post a Comment