EXTJS7默认模板没有引入treegrid包,使用treegird时会报错Unrecognized alias: widget.tree 1.
treestore过滤方向配置 默认treestore必须从根节点到子节点路径上所有节点都符合过滤条件才会显示 如果需要显示符合条件的所有节点(父节点可能不符合过滤条件)可通过以下配置实现: tree
默认情况下,用户无法通过点击拖拉选择界面上的文本 解决方案 Ext.Component组件可以使用userSelectable配置项,设置为‘text’,即可实现此组件中文本的点选 注意:如果设置为true,等效于设置样式 user-select: auto; ,将根据浏览器默认属性进行选择 { xtype: 'grid', userSelectable: 'text' } 也可以传入对象设置子元素的样式 userSelectable: { element: true, // all
使用eventedConfig的类需继承’Ext.Evented’ eventedConfig自动并入到config中 // Evented.js源码 Ext.define('Ext.Evented', { onClassExtended: function(cls, data) { if (config) { Ext.applyIf(config, eventedConfig); } else { cls.ad
treestore如果从根节点遍历树获取所有记录太麻烦 版本 7.x 解决 使用treestore.byIdMap即可获取根据记录ID映射的所有记录 源码分析 modern/src/TreeStore.js Ext.define('Ext.data.TreeStore', { registerNode: function(node, includeChildren) { var me = this, was = me.byIdMap[node.id],
服务接口提供的数据格式没办法直接使用,可通过实现reader.transform函数进行预处理 样例 Ext.create('Ext.data.Store', { model: 'User', proxy: { type: 'ajax', url : 'users.json', reader: { type: 'json', transform: { fn: fun
Trigger.js onClick: function(e) { var me = this, handler = !me.getDisabled() && me.getHandler(), field = me.getField(), focusEl; ... // handler = 'onExpandTap' 触发combobox展开按钮点击处理函数 if (handler) { Ext.callback(handler, me.get
Ext.define('myComponent', { extend: 'Ext.Component', // 自定义配置属性,会自动生成getter,setter config: { prop1: null, ... }, items:[{ xtype: 'textfield', // 属性不能直接绑定到组件配置上 bind: '{vmprop1}' }], constructor: function(config) { // 如果重载了构造函数需得要调用初始化配
默认的表单提交方式上传文件在跨域时有各种问题 直接使用Ajax提交表单如下: var formData = new FormData(form.element.dom); Ext.Ajax.request({ method: 'POST', // 注意此处如果不写请求Content-Type默认为text/plain,导致服务无法正确解析数据 // 设置后请求Content-Type将为multipart/form-data; boundary=... 标识这是一个表单消息 hea
声明内存store xtype: 'combobox', // 默认为remote,store.remoteFilter会被设置为true,且每次下拉都会触发store.load()导致下拉选项被清空 queryMode: 'local', store: { data:[] } 修改选项数据 store.loadData([...]); 如果如果没有设置 queryMode=‘local’,通过以下方法修改选项数据 // 此处proxy为Ext.data.proxy.Memory store.getPro
在组件声明使用publishes Ext.define('myComponent', { extend: 'Ext.Component', xtype: 'my-component', // 配置属性,默认不支持组件直接绑定属性 config: { prop1: null, ... }, publishes: { // 增加此项将配置属性映射到viewModel prop1: true }, items:[{ ... // 可以直接绑定published映射过的配置属
版本 7.4.0 classic 效果 展开 折叠 源码 覆盖panel组件updateCollapseTool方法修改折叠按钮图标 updateCollapseTool: function () { this.callParent(); var me = this, collapseTool = me.collapseTool; if (collapseTool) { if (me.collapsed && !me.isPlaceHolderCollapse
[E] Ext.Widget.initElement(): No ‘element’ reference found in ‘myComponent’ template.
Ext.define('PSR.Iframe', { extend: 'Ext.Component', xtype: 'psr-iframe', config: { src: null }, element: { reference: 'element', children: [{ reference: 'iframe', tag: 'iframe', frameborder: "0", widt
在Store.grouper属性配置Ext.util.Grouper实现自定义分组规则 关键配置 grouper:{ // "DESC" direction: "ASC", // 分组关键字计算函数,入参数据记录,返回分组关键字值,如果不实现此函数则取property配置的记录字段值 groupFn: function(record) { return record.data.prop1 + record.data.prop2; }, // 直接取记录字段 property: 'prop
子组件vm(VIewModel)初始化时会自动将父组件的vm设置为parent 如果子组件的vm初始化时子组件v(View)尚未add到父组件v上,则子组件的vm.parent为null且不会在view add后再设置为父组件vm(只读),此时子组件元素无法绑定到父组件vm
重写AJAX方法通过请求options传入为HTTPXMLRequest.upload.onprogress事件添加监听 Ext.define('common.patch.Ext.data.request.Ajax', { override: 'Ext.data.request.Ajax', newRequest: function (options) { var xhr = this.callParent([options]); if (options.up
extjs组件的构造函数可以获得两个config变量 constructor: function (config) { this.config this.callParent([config]); }, 传入参数config:实例化组件时传入的配置参数 成员变量this.config: 组件类定义中的配置值 例如: Ext.define('mybasecomp',{ config: {myBaseProp: 'defaultBasePropValue'}, constructor:
版本 7.4 classic 工具包 方法 使用isActionDisabled配置函数 { xtype: 'actioncolumn', items: [{ iconCls: 'x-fa fa-stop-circle', handler: 'hBtnStop', isActionDisabled: function (view, rowIndex, colIndex, item, record) { return !r
使用publishes/twoWayBindable都可以启用配置属性的变更通知,既可实现双向绑定 // 默认配置属性只能做入参 config: {myprop1: 1}, // 启用双向绑定 publishes: ['myprop1'], // 或 twoWayBindable: ['myprop1']