在ExtJS 4中调用生命周期模板方法

时间:2011-05-30 23:34:26

标签: extjs extjs4

在下面的示例代码中,我创建了一个自定义组件,它使用了一些生命周期回调方法,如onRender

Ext.onReady (function() {
Ext.define("Person", {
    extend: "Ext.Component",

    constructor: function (config) {
        this.initConfig(config),
        this.callParent();
        console.log("inside constructor");
        return this
    },

    onRender: function() {
        this.callParent(arguments);
        console.log("inside onRender");
    },
});

Ext.create('Person', {
    width:200, 
    height:300,
    html: "hello world",
    renderTo: Ext.getBody()
});

});

输出:“内部构造函数”

看起来没有调用onRender的生命周期方法。此外,“hello world”也未呈现。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我不知道究竟是什么答案..但我试着回答它,请纠正我,如果我错了..

据我所知,callparent()用于在其父级中调用函数,该函数可能需要传递参数,在这种情况下构造函数需要传递一个数组。

Ext.onReady (function() {
    Ext.define("Person", {
        extend: "Ext.Component",

        constructor: function (config) {
            //this.initConfig(config),
            this.callParent([config]);
            console.log("inside constructor");
            //return this
        },

        onRender: function() {
            this.callParent(arguments);
            console.log("inside onRender");
        },
    });

    Ext.create('Person', {
        width:200, 
        height:300,
        html: "hello world",
        renderTo: Ext.getBody()
    });

});

this.callParent([config]);这意味着使用参数config或此范围调用父级。 因此,onRender中的Ext.component功能会被onRender ...

覆盖