相关疑难解决方法(0)

重写Sencha ExtJS标准组件功能的步骤(Ext.tree.Panel和Ext.data.TreeStore作为两个示例)

假设我正在扩展一个标准的Sencha ExtJS 4小部件/组件,我发现了一些不按照我希望的方式工作的东西,或者它们可能只是破坏了而且Sencha还没有解决问题组件呢.我将使用Sencha ExtJS Ext.tree.Panel和Ext.tree.Store作为两个示例组件.覆盖构造函数,配置,属性,方法和事件的最基本步骤是什么,以便我可以找到并修复该组件的问题,而无需修改我正在使用的核心ExtJS 4框架JS文件?

我意识到有时候框架中有这么多功能,人们可能会忽略某个地方的配置而没有意识到他们可以通过标准实现解决问题.这可以通过更多框架经验得到纠正.把它放在一边,这些最基本的步骤是什么?

假设我们从这两个实现开始,并从非常基础开始.

仅供参考:我得到了这两个组件的核心功能,没有太多工作,真的使用Ext.Direct服务器端堆栈,我可以解释与IE的Sencha ExtJS Ext.tree.Panel组件的所有跨浏览器兼容问题, Mozilla Firefox和Google Chrome,但我可能会花太多时间询问其他问题.我并不是说IE首先是陈规定型的,因为所有这些浏览器都存在Ext.tree.Panel组件的问题.我宁愿学习如何在这里钓鱼,所以我可以钓到自己的鱼.一旦我更好地理解了这些与树有关的课程,我会提出更具体的问题.

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.TreeStore

自定义Ext.data.TreeStore实现:

Ext.define('MyApp.store.TreeNodes', {
    extend: 'Ext.data.TreeStore',
    xtype: 'store-tree-nodes',
    model : 'MyApp.model.TreeNode',
    proxy: {
        type: 'direct',
        directFn: Tree_Node_CRUD.read,
        reader: {
            root: 'data'
        }
    },
    nodeParam: 'node',
    parentField: 'parentId',
    root: {
        text: 'root',
        id: '0',
        expanded: true
    },
    autoLoad: false,
    single: true,
    listeners: {
        beforeload: function(store, operation, options) {
        },
        append: function( thisNode, newChildNode, index, eOpts ) {
        }    
    }
});
Run Code Online (Sandbox Code Playgroud)

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.tree.Panel

自定义Ext.tree.Panel实现:

Ext.define('MyApp.view.MainTree', {
    extend: 'Ext.tree.TreePanel',
    xtype: …
Run Code Online (Sandbox Code Playgroud)

overriding extjs extjs4

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

extjs ×1

extjs4 ×1

overriding ×1