Вы не должны использовать жестко id
ни для одного из классов!Вы должны кодировать свой вид как:
Ext.define('MyApp.view.Books',{
extend: 'Ext.Panel',
alias : 'widget.books',
config: {
html: 'Hello, Books!'
},
initialize : function() {
// some init code etc..
this.callParent();
}
});
Обратите внимание на свойство псевдонима.Это поможет вам получить ссылку на экземпляры вашего представления.Когда вы ссылаетесь на вид.Теперь в вашем контроллере у вас есть:
...
this.control({
'books' : {
render: function() {
console.log('Render method called!');
},
show: function() {
console.log('Show method called!');
}
},
.
...
Обратите внимание, что вы не обновляете свой вид с помощью свойства id, а через его псевдоним или xtype.Теперь, если вам нужен доступ к представлениям других контроллеров или любому другому компоненту вашего контроллера, вы также можете использовать доступную систему refs.В этом случае вы определите массив refs в определении контроллера следующим образом:
refs: [
{ref: 'centerPane', selector: 'centerpane'}
],
Здесь свойство селектора - это значение, переданное Ext.ComponentQuery
для получения компонента.Таким образом, вы можете получить экземпляр центральной панели:
this.getCenterPane();