Sencha Touch - Controlador

O controlador é um dos principais componentes da arquitetura MVC.

O controlador é o componente que controla a funcionalidade. Escrevemos ouvinte no controlador e ele atua como uma cola entre a visualização e o modelo, onde a visualização é para a IU visual, enquanto o modelo é para armazenar e manipular os dados.

As principais funções de um controlador são -

  • As ações são escritas no controlador como se pressionássemos um botão no aplicativo ou passássemos o mouse sobre algum link, qual ação deve ser executada é escrita nas funções de ouvinte do controlador.

  • O controlador tem as funções init e launch disponíveis, que são chamadas assim que o aplicativo e o controlador são iniciados.

Funções de inicialização e inicialização do controlador

Podemos definir a função de inicialização e inicialização no controlador. Um aplicativo pode ter sua própria função de inicialização, então aqui está a ordem em que as funções devem ser chamadas.

  • A função de inicialização do controlador é chamada primeiro quando o aplicativo é iniciado.

  • Em seguida, a função de inicialização do aplicativo é chamada.

  • A função de lançamento do controlador é chamada assim que o lançamento do aplicativo é chamado e o aplicativo é iniciado.

Componentes de configuração do controlador

Podemos ter refs e controle na configuração de um controlador. Vamos dar uma olhada em como ambos funcionam.

Refs

Refs na configuração podem ser usados ​​conforme mostrado no exemplo a seguir.

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

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

Refs pode ser usado para se referir a qualquer id. Como podemos ver no exemplo acima, a guia é a ref criada que se refere ao id #divId.

Refs são criados no par de valores-chave, como no exemplo acima, tab é a chave e divId é o valor. Sempre que um ref é criado, os get e setters são criados automaticamente para o mesmo. No exemplo acima, criamos uma guia ref as para que possamos acessá-la como o método getTab, que é criado automaticamente.

Ao controle

Control é uma configuração semelhante a ref que recebe ref como chave e o valor como função de escuta, que é chamada para realizar algumas tarefas.

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
   }
});

Rotas

O controlador define a rota na qual está interessado. Com a ajuda de rotas, podemos vincular qualquer parte da aplicação à rota fornecida.

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

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

A rota pode ser acessada com o URL da barra de endereços do navegador.

No exemplo acima, a função do controlador showLogin será chamada se o usuário acessar a url https://myApp.com/#login.

As rotas também podem ser chamadas com curingas, como a função userId será chamada se o URL do navegador for https://myApp.com/#user/3003

Portanto, sempre que a URL do navegador muda, a rota chama automaticamente a função específica do controlador.