Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 有哪些好的方法可以重用配置的某些部分?_Extjs_Extjs6 - Fatal编程技术网

Extjs 有哪些好的方法可以重用配置的某些部分?

Extjs 有哪些好的方法可以重用配置的某些部分?,extjs,extjs6,Extjs,Extjs6,例如,我有几个共享公共列的网格(问题不限于列、任何配置对象)。目前我正在做这样的事情: //columns.js var columns = {"reusable1": {...}, "reusable2": {...}}; //grid views Ext.define('MyApp.view.Grid', { columns: [ {text:'inline column1'}, columns.reusable1, columns.

例如,我有几个共享公共列的网格(问题不限于列、任何配置对象)。目前我正在做这样的事情:

//columns.js
var columns = {"reusable1": {...}, "reusable2": {...}};

//grid views
Ext.define('MyApp.view.Grid', {
    columns: [
        {text:'inline column1'},
        columns.reusable1,
        columns.reusable2,
        {text:'inline column2'},
    ]
});

这就完成了任务,但是以类似的方式工作的更好的方法是什么(不为每个配置块创建唯一的
xtype
,或者修改
构造函数中的配置
initComponent
)。我只是希望能够像以前一样将其他可重用配置片段内联。

看看这些配置:

默认值
配置适用于整个容器,其中as
有自己的默认值选项


希望这有帮助

我认为大多数其他选项可能会降低可读性,或者看起来非常复杂,但是您可以覆盖基类,并包含“命名”列的配置

我假设当您说“不修改构造函数中的配置”时,您指的是实现列的网格,而不是可以在其他地方整理的类似逻辑

Ext.define('App.override.grid.column.column'{
重写:“Ext.grid.column.column”,
配置:{
名称:空
},
静力学:{
名称列:{
可重用1:{/*…*/},
可重用2:{/*…*/},
// ...
}
},
构造函数:函数(args){
var_args=args | |{},
静态=Ext.grid.column.column,
默认值=statics.namedColumns[_args.name]| |{};
this.callParent([Ext.apply({},_args,defaults)];
}
});
用法

Ext.define('App.view.Grid'{
栏目:[
{text:'inline column1'},
{name:'reusable1'},
{name:'reusable2'},
{text:'内联列2'},
]
});
优势

  • 在项目结构中进行整理,而不是在全球范围内进行整理
  • 避免潜在的依赖性问题,因为Sencha CMD将确保在声明任何网格之前存在覆盖(并通过扩展这些默认值)
  • 命名的配置更加灵活,可以整齐地内联覆盖。
    例如
    {name:'reusables',flex:2/*替换值*/}
缺点

  • 不能将
    xtype
    用作默认配置的一部分,这仍然需要为常规网格列以外的任何内容内联指定
    例如
    {xtype:'datecolumn',name:'some defaults'}