Sencha Touch - Controlador

El controlador es uno de los componentes principales de la arquitectura MVC.

El controlador es el componente que controla la funcionalidad. Escribimos oyente en el controlador y actúa como un pegamento entre la vista y el modelo, donde la vista es para la interfaz de usuario visual mientras que el modelo es para almacenar y manipular los datos.

Las principales funciones de un controlador son:

  • Las acciones están escritas en el controlador como si presionamos un botón en la aplicación o pasamos el cursor sobre algún enlace, la acción que se debe realizar está escrita en las funciones de escucha del controlador.

  • El controlador tiene disponibles las funciones de inicio y ejecución, que se llaman una vez que se inician la aplicación y el controlador.

Funciones de inicio y lanzamiento del controlador

Podemos definir la función de inicio e inicio en el controlador. Una aplicación puede tener su propia función de inicio, así que aquí está el orden en el que deben llamarse las funciones.

  • La función de inicialización del controlador se llama primero cuando se inicia la aplicación.

  • Entonces se llama a la función de lanzamiento de la aplicación.

  • La función de inicio del controlador se llama una vez que se llama al inicio de la aplicación y se inicia la aplicación.

Componentes de configuración del controlador

Podemos tener referencias y control en la configuración de un controlador. Echemos un vistazo a la forma en que funcionan ambos.

Refs

Las referencias en la configuración se pueden utilizar como se muestra en el siguiente ejemplo.

Ext.define('MyApp.controller.Main', {
   extend: 'Ext.app.Controller', config: {
      refs: {
         tab: '#divId
      }
   },

   addLogoutButton: function() {
      this.getTab().add({
         text: 'Logout'
      });
   }
});

Las referencias se pueden utilizar para hacer referencia a cualquier identificación. Como vemos en el ejemplo anterior, la pestaña es la referencia creada que hace referencia al id #divId.

Las referencias se crean en un par clave-valor, como en el ejemplo anterior, tab es la clave y divId es el valor. Siempre que se crea una referencia, los get y setters se crean automáticamente para la misma. En el ejemplo anterior, hemos creado una referencia como pestaña para poder acceder a ella como método getTab, que se crea automáticamente.

Controlar

Control es una configuración similar a ref que toma ref como clave y el valor como función de escucha, que se llama para realizar algunas tareas.

Ext.define('MyApp.controller.Main', {
   extend: 'Ext.app.Controller', config: {
      control: {
         loginButton: {
            tap: 'doLogin'
            // ref tap is the key and doLogin is the value which is a listener.
         }
      },

      refs: {
         loginButton: 'button[action=login]' 
      }
   },

   doLogin: function() {
      // called whenever the Login button is tapped
   }
});

Rutas

El controlador define la ruta en la que está interesado. Con la ayuda de las rutas, podemos vincular cualquier parte de la aplicación a la ruta proporcionada.

Ext.define('MyApp.controller.Main', {
   extend: 'Ext.app.Controller', config: {
      routes: {
         login: 'showLogin',
		 'user/:id': 'userId'
      }
   },

   showLogin: function() {
      // statements
   },
   userId: function() {
      // statements
   }
});

Se puede acceder a la ruta con la URL de la barra de direcciones del navegador.

En el ejemplo anterior, se llamará a la función del controlador showLogin si el usuario accede a la URL https://myApp.com/#login.

Las rutas también se pueden llamar con comodines, como la función userId se llamará si la URL del navegador es https://myApp.com/#user/3003

Por lo tanto, siempre que cambie la URL del navegador, la ruta llamará automáticamente a la función del controlador específico.