В моем простом приложении я слушаю для disclose
события, как это:Правильный способ крепления «раскрыть» (или любой другой) обработчик событий в Сенча сенсорный
В файле NotesList.js
(вид) ...
Ext.define("NotesApp.view.NotesList", {
extend : "Ext.dataview.List",
xtype : "noteslist",
...
config : {
onItemDisclosure : true, //adds the disclose arrow
}
});
NotesList используется в NotesListContainer, который является Ext.Container
.
Тогда в NotesListContainer.js
(вид) ...
var notesList = {
xtype : "noteslist",
...
listeneres : {
disclose : { fn : this.onNotesListDisclose, scope : this }
}
};
this.add([topToolbar, notesList]);
Функция делает это:
onNotesListDisclose : function(list, record, target, index, evt, options) {
console.log(' onNotesListDisclose() called'); //nevers gets logged
this.fireEvent('editNoteCommand', this, record);
}
Затем в Notes.js
(контроллер):
refs : {
//get elemets using xtype attr
notesListContainer : "noteslistcontainer",
noteEditor : "noteeditor"
},
//handlers for events
control : {
//define which events should this controller respond to
notesListContainer : {
//events fired by NotesListContainer
newNoteCommand : "onNewNoteCommand",
editNoteCommand : "onEditNoteCommand"
}
}
},
//Event/Command handler
onEditNoteCommand : function(list, record) {
console.log(' onEditNoteCommand called ');
this.activateNoteEditor(record);
}
Я думаю, что проблема находится в NotesListContainer.js, где я создаю список. Если я прослушивайте событие в контроллере, как это:
refs : {
//get elemets using xtype attr
notesListContainer : "noteslistcontainer",
notesList : "noteslistcontainer list",
},
//handlers for events
control : {
//define which events should this controller respond to
notesListContainer : {
//events fired by NotesListContainer
newNoteCommand : "onNewNoteCommand",
//editNoteCommand : "onEditNoteCommand"
},
notesList : {
disclose : "onEditNoteCommand" //adding it this way works...
}
}
Он работает просто отлично. Тем не менее, я предпочел бы работать с более специфичным для приложения событием, а не очень общим событием disclose
. Я новичок в сенчане, любая помощь приветствуется.
Например, 'onEditNoteCommand' имеет больше смысла, чем 'disclose' –