Tengo una función que se describe en uno de mis controladores. La función se encarga de crear un formulario que necesito usar en diferentes casos, desde diferentes puntos de vista. ¿Es posible y cuál es la forma de llamar a esta función desde las vistas que necesito sin agregar el mismo código en cada controlador?ExtJS 4 - cómo llamar a la función desde un controlador determinado en diferentes vistas
Este es el código del controlador donde trato de usar un método de otro controlador:
Ext.define('MY.controller.EventsController', {
extend: 'Ext.app.Controller',
models: [
'EventsRecord'],
stores: [
'Events'],
views: [
'EventsGrid'],
refs: [{
ref: 'EventsGrid',
selector: 'CalendarEvent'
}],
init: function() {
this.control({
'CalendarEvent': {
afterEditFinish: this.askForNotify,
deleteEvent: this.deleteEvent,
calendarEditFunc: this.calendarEditFunc,
addCalendarEvent: this.addCalendarEvent,
itemclick: this.onSelectEnableBtn
}
})
},
Aquí trato de usar algo como var contr = Ext.getController('SomeController');
and..nothing ..
askForNotify: function(editor, e) {...
¿No es posible trabajar con 'getController' para llamar a la función? He intentado con' Ext.getC ontroller ('nombre') 'y' this.getController ('nombre') y ambos nos dieron un error 'getController no es una función' pero pensé que este era el camino correcto a seguir. – Leron
getController es un método de la clase Ext.app.Controller, por lo que debe tener una referencia al controlador de su vista actual, lo que de nuevo pienso en MVC :) – sha
De hecho, déjenme explicar: tengo un formulario para notificaciones por correo que debe mostrarse en diferentes ocasiones (desde diferentes puntos de vista, en diferentes eventos) pero la forma se define en un controlador. ¿Cuál cree que es la mejor manera de implementar tal cosa? Obviamente, copiar y pegar el código no es la solución correcta, creo que debería haber una forma adecuada de colocar el código en un lugar y usarlo de muchos, pero no estoy seguro de qué hacer exactamente. – Leron