javascript - ExtJS 5 : Get initialConfig of defined class

标签 javascript extjs extjs5

我正在尝试获取我在面板中定义和使用的类的initialConfig。通过初始配置,我的意思是我想要在面板中使用该类时设置的内容,以及该类的定义值是什么。这是一个例子:

Ext.define('MyViewModel', {
  extend: 'Ext.app.ViewModel',
  alias: 'viewmodel.myview',
  stores: {
    gridStore: {
      autoLoad: true,
      fields: ['name', 'email', 'phone', 'userval', 'doj'],
      proxy: {
        type: 'ajax',
        url: 'data1.json',
        reader: {
          type: 'json'
        }
      }
    }
  }
});

Ext.define('MyGrid', {
  extend: 'Ext.grid.Panel',
  xtype: 'myGrid',
  viewModel: {
    type: 'myview'
  },
  title: 'Simpsons',
  stateful: true,
  multiSelect: true,
  stateId: 'stateGrid',
  closable: true,
  bind: {
    store: '{gridStore}'
  },
  columns: [{
    text: 'Name',
    dataIndex: 'name',
    stateId: 'name'
  }, {
    text: 'Email',
    dataIndex: 'email',
    flex: 1,
    stateId: 'email'
  }, {
    text: 'Phone',
    dataIndex: 'phone',
    stateId: 'phone'
  }, {
    text: 'Date of Joining',
    dataIndex: 'doj',
    flex: 1,
    stateId: 'date'
  }]
});
Ext.define('MyController', {
  extend: 'Ext.app.ViewController',
  alias: 'controller.myview'
});
Ext.state.Manager.setProvider(Ext.create('Ext.state.LocalStorageProvider'));
var panel = Ext.create('Ext.panel.Panel', {
  title: 'My Panel',
  controller: 'myview',
  height: 400,
  width: 400,
  layout: 'fit',
  renderTo: Ext.getBody(),
  items: [{
    xtype: 'myGrid',
    reference: 'something'
  }],
  listeners: {
    afterrender: function(panel) {
      console.log(panel.lookupReference('something').initialConfig);
    }
  }
});

输出内容:

Object {
  xtype="myGrid",
  reference="something"
}

因此,在 afterrender 处理程序中,当我输出 initialConfig 时,我想查看面板配置中为我的类设置的内容,以及该类的配置定义的属性,如列、标题等。我尝试查看config,但这并没有给我列...我意识到我可以直接查看网格的列,但是如果用户对其中之一进行了更改(隐藏/重新排序),我不想要这些更改。我可以寻找其他一些属性吗?

最佳答案

您可以清除状态并使用原型(prototype)的列重新配置网格:

var grid = panel.lookupReference('something'),
    store = grid.getStore();

// Clear the state of the grid
Ext.state.Manager.clear(grid.stateId);
// Sort the store back to default
store.sort('first', 'ASC');
// Reconfigure the grid
grid.reconfigure(store, grid.self.prototype.columns);

工作示例
https://fiddle.sencha.com/#fiddle/tp0
https://fiddle.sencha.com/#fiddle/tp1

明确状态的学分:
https://druckit.wordpress.com/2014/02/14/ext-js-4-grid-state-management/

关于javascript - ExtJS 5 : Get initialConfig of defined class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32529370/

相关文章:

javascript - Extjs5:如何通过各种属性查询组件

javascript - 我应该什么时候为特定的副作用创建一个新的订阅?

javascript - 防止 WebSocket 中第一条接收到的消息理论上丢失

java - ExtJS 文件上传响应?

java - AJAX 响应与 java/hibernate 返回的字符串不同

javascript - Ext JS - 版本变量增量

javascript - 正则表达式用于替换非数字字符并在键入电话号码时插入破折号

javascript - 在js中更新父窗口元素

extjs - 修复了 EXTJS 面板中的复选框列

javascript - 从字节数组加载图像内容