ExtJs Json商店
答
我认为你可以使用baseParams选项发送你需要的任何参数。 如:
var store = new Ext.data.JsonStore({
baseParams: {some_array: [['1'],['2']]},
...
答
要获得的从你的商店记录的数组,你可以使用:
var store = gridpanel.getStore();
var records = store.getRange();
// If you don't want any of that metadata referring to the gridpanel.
var rawRecords = records.map(function(r) {return r.data;});
要传递到控制器,最好的做法是从GridPanel中触发一个事件并让控制器监听它。
// Somewhere in gridpanel or a reference to whatever your custom class is
gridpanel.fireEvent('rawRecordsEvent', rawRecords);
...
// In controller
Ext.define('MyApp.controller.GridController', {
extend: 'Ext.app.Controller',
init: function() {
this.control({
// gridpanel or alias of whatever your custom class is.
'gridpanel': {
rawRecordsEvent: this.onRawRecordsEvent
}
});
},
onRawRecordsEvent: function(rawRecords) {
console.log(rawRecords);
}
});
下面是如何使用控制器来听一个视图组件一个很好的例子: http://www.objis.com/formationextjs/lib/extjs-4.0.0/docs/api/Ext.app.Controller.html
这种做法是一个我的团队使用了很多。在控制器中监听事件非常重要,因为它可以避免需要传递参数。此外,请记住在网格面板上使用事件,以便您可以参照传入的网格面板。这样,您就可以轻松避免使用Ext.getCmp(),这可能会成为大页面/播客的性能杀手。 – 2015-09-12 14:03:32