Я пытался заставить это работать довольно долгое время, но я до сих пор не смог найти решение для этого, кроме добавления в представлении внутри прослушивателей. Но я хочу, чтобы контроллер справился с этим.Триггер ExtJS Controller на гиперссылке
У кого-нибудь есть идея, как я могу это решить?
Это то, что у меня есть в моих файлах на данный момент http://pastie.org/2751446
controller/App.js
Ext.define('HD.controller.App', {
extend: 'Ext.app.Controller'
,views: [
'core.Header',
'core.Navigation',
'core.Content'
]
,init: function() {
this.control({
'navigation a[id=tab1]': {
click: this.newTab
}
})
}
,newTab: function() {
console.log('Tab 1 should be loaded now');
}
});
вид/ядро / Navigation.js
Ext.define('HD.view.core.Navigation', {
extend: 'Ext.panel.Panel'
,name: 'navigation'
,alias: 'widget.navigation'
,layout: 'accordion'
,region: 'west'
,width: 200
,title: 'Navigation'
,collapsible: true
,items: [
{
title: 'Title 1'
,html: '<a id="tab1" style="cursor:pointer;">Tab 1</a>'
},
{
title: 'Title 2'
,html: 'Second'
}
]
});
Спасибо за ответ s_hewitt. Я попробую перевернуть это во что-то, что работает, когда я вернусь с работы :) – Ole
Я пытался это решить. Если я заменил комментарий в afterrender представления предупреждением, он будет запущен правильно. Но это связь между представлением и контроллером, с которыми я борюсь. Также я не уверен, правильно ли я сделал это в отношении «newTab» в моем контроллере. Вот мой текущий код: http://pastie.org/2757329 – Ole
Переместите слушателя 'afterrender' на ваш контроллер. См. Мое редактирование. –