我使用如下XTemplate创建了一个自定义组件:

initComponent: function () {
    this.initLayout();
    this.callParent();
},

initLayout: function() {
    var me = this;
    var mainTpl = this.getTemplate();
    Ext.apply(me, { html: mainTpl.apply() });
},


在我的模板中,我有一些占位符,我想在其中渲染一些文本字段...
所以我试图在这样的事件处理程序中做到这一点:

listeners: {
    render: function () {
        var usrPlaceHolder = Ext.query('li.LoginUsername');
        if (usrPlaceHolder) {
            Ext.create('Ext.form.field.Text', {
                renderTo: usrPlaceHolder
            });
        }
    }
}


我的Ext.query函数确实找到了正确的DOM元素,尽管具有renderTo配置的Ext.create确实引发了以下错误:

Uncaught TypeError: Cannot call method 'createRange' of undefined


如果您需要任何其他信息,例如调用堆栈或其他信息,请不要犹豫。

最佳答案

Ext.query返回一个数组,可能不是renderTo所期望的。

请改用Ext.dom.Query.selectNodeExt.query('li.LoginUsername')[0],或使用任何可以提供单个元素的方法。

关于javascript - Ext JS 4.2.1-renderTo导致错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19095067/

10-13 08:24