我使用如下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.selectNode
或Ext.query('li.LoginUsername')[0]
,或使用任何可以提供单个元素的方法。
关于javascript - Ext JS 4.2.1-renderTo导致错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19095067/