Мне просто присвоен какой-то проект ушедшего разработчика extjs. В контроллерах, которые он сделал, я обнаружил, звонки, какКак создать геттер и сеттер
this.getMyButton().toggle(true);
this.getMyContainer().getLayout()...
Итак, я просто добавил новую форму представления (одна из вещей, мой бывший коллега должен был законченное Рождеством) и попытались вызвать его из контроллер с помощью
this.getMyNewForm().loadRecord(someStore.getAt(0));
и Chrome говорит мне, что this.getMyNewForm()
не определено. Но нигде в коде я не нашел определения для getMyButton()
.
В чем дело? Как определить getMyNewForm()
?
EDIT: Вопрос ответил на документы (http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.app.Controller-cfg-refs), но проблема все еще открыта.
Ссылка правильно определен в контроллере:
refs: [{
ref :'MyNewForm',
selector :'form[id=myNewForm]'
}]
и MyNewForm правильно определяется с учетом
items: [{
xtype: 'form',
header:false,
frame:false,
id:'myNewForm',
items: [{
, но она не работает, когда я называю
init: function() {
this.control({
});
this.getMyNewForm().loadRecord(someStore.getAt(0));
},
Сначала вы должны изучить то, что уже есть, а не то, что было реализовано. – Don
Вы называете это слишком рано. 'init' для контроллеров вызывается до отображения любого представления. –
@EvanTrimboli Thx! Я поместил вызов в window.afterrender, и теперь он работает. Не могли бы вы ответить на это, так что я могу отметить вопрос, как он ответил? :) – Alexander