Ho cercato di farlo funzionare per un po 'di tempo, ma non sono ancora riuscito a trovare una soluzione per questo tranne aggiungere un afterrender all'interno degli ascoltatori nella vista. Ma voglio che il controller lo gestisca.Attivatore ExtJS Controller su collegamento ipertestuale fare clic su
Qualcuno ha un'idea su come posso risolvere questo?
Questo è quello che ho nel mio file al momento 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');
}
});
vista/core/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'
}
]
});
Grazie per la s_hewitt risposta. Proverò a farlo girare in qualcosa che funziona quando torno a casa dal lavoro :) – Ole
Ho cercato di risolvere questo problema. Se sostituisco il commento nel afterrender della vista con un avviso, viene attivato correttamente. Ma è il collegamento tra la vista e il controller con cui sto lottando. Inoltre non sono sicuro di averlo fatto bene riguardo alla parte "newTab" nel mio controller. Ecco il mio codice attuale: http://pastie.org/2757329 – Ole
Spostare il listener 'afterrender' sul controller. Vedi la mia modifica. –