2013-09-30 2 views
1

Я создал пользовательский компонент с XTemplate, как это:Ext JS 4.2.1 - renderTo вызывает ошибки

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

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

в моем шаблоне я получил некоторые заполнители, где я хочу, чтобы сделать некоторые текстовые поля ... так я пытался сделать это в EventHandler так:

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

моя функция Ext.query действительно найти правильный DOM Element, хотя Ext.create с конфигой renderTo делает кинуть следующую ошибку:

Uncaught TypeError: Cannot call method 'createRange' of undefined 

, если вам нужна дополнительная информация вроде стеком вызовов или что-то .. не стесняйтесь спрашивать ..

ответ

1

Ext.query возвращает массив, который, вероятно, не то, что renderTo ожидает.

Вместо этого используйте Ext.dom.Query.selectNode, или Ext.query('li.LoginUsername')[0], или что-нибудь, что даст вам один элемент.

+0

oh my got - думал, что это будет что-то глупое, что я не узнаю: D thx! – JuHwon

Смежные вопросы