ExtJSON存储

ExtJSON存储,extjs,Extjs,是否有任何方法将ExtJSGridPanel的JSON存储作为二维数组发送给控制器。 提前感谢。我认为您可以使用baseParams选项发送所需的任何参数。 例如: 我认为您可以使用baseParams选项发送所需的任何参数。 例如: 要从存储中获取记录数组,您可以使用: var store = gridpanel.getStore(); var records = store.getRange(); // If you don't want any of that metadata refer

是否有任何方法将ExtJSGridPanel的JSON存储作为二维数组发送给控制器。
提前感谢。

我认为您可以使用baseParams选项发送所需的任何参数。 例如:


我认为您可以使用baseParams选项发送所需的任何参数。 例如:


要从存储中获取记录数组,您可以使用:

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);
    }
});
下面是一个很好的示例,说明如何使用控制器来侦听视图组件:

要从存储中获取记录数组,您可以使用:

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);
    }
});
下面是一个很好的示例,说明如何使用控制器来侦听视图组件:

我的团队经常使用这种方法。在控制器中侦听事件是非常好的,因为它使您不需要在周围传递参数。另外,请记住在grid面板上使用事件,以便传入gridpanel的引用。通过这种方式,您可以轻松避免使用Ext.getCmp(),它可能是大型页面/dom的性能杀手。在控制器中侦听事件是非常好的,因为它使您不需要在周围传递参数。另外,请记住在grid面板上使用事件,以便传入gridpanel的引用。通过这种方式,您可以轻松避免使用Ext.getCmp(),它可能是大型页面/dom的性能杀手。