2017-01-27 2 views
1

У меня возникли проблемы с использованием метода 'lookupReference'.lookupReference не работает в режиме обновления свойств конфигурации

У меня есть панель с конфигурацией.

Ext.define('TestPanel', { 
    extend: 'Ext.panel.Panel', 
    xtype: 'mypanel', 
    referenceHolder: true, 
    config: { value: null }, 
    items: [{ xtype: 'textfield', reference: 'name'}], 
    updateValue: function(value) { 
     this.lookupReference('name').setValue(value); 
    } 
}); 

И когда я создаю панель, как следовать

Ext.widget('mypanel', {value: 1}); 

я получаю сообщение об ошибке, потому что this.lookupReference('name') в методе updateValue панели равна нулю.

Fiddle

Как использовать 'lookupReference' в методе обновления?

Спасибо.

+0

Когда внутри функции updateValue это, вероятно, относится к документу HTML, поэтому я предполагаю, что вы находитесь в неправильном объеме. –

ответ

3

Вызывается перед вызовом компонента updateValue.

Вы можете ждать afterrender: https://fiddle.sencha.com/#view/editor&fiddle/1p2i

+0

Я создал функцию для вызова update on afterrender 'callAfterRender: function (view) { if (view.rendered) { return false; } var fn = arguments.callee.caller; view.un ('afterrender', fn, view); view.on ('afterrender', fn.apply.bind (fn, view, fn.arguments), null, {single: true}); return true; } '. И я использую эту функцию в функциях обновления 'if (callAfterRender (this)) {return; } ' – ki11en

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