Controladores:
Existem três tipos de controladores que você pode definir:
- Controlador: “Nenhuma instância de um modelo”
estritamente para gerenciar propriedades e estados de ligação de uma maneira fácil entre a visualização e o controlador.
- ObjectController: “Uma instância de um modelo”
Pretende ser preenchido por um único modelo, que está disponível por meio de {{this}} em modelos para exibição de conteúdo.
- ArrayController: “Muitas instâncias de modelos semelhantes”
Espera uma matriz de objetos como modelo de suporte, disponível como em um controlador de objeto. Existem atalhos especiais para iterar através do contexto de apoio da matriz, como {{#each}}.
Diretrizes Simples
Os controladores contêm propriedades, propriedades computadas, observáveis, bem como a vinculação do ciclo de vida do evento por meio do decorador .on () para funções. por exemplo;
actions: {
toggleWidget: function (args) {
// do things
}.on('SomeViewClass.didTransition')
}
Os controladores, como as Rotas, podem conter um objeto denominado ‘ações’ que permitem que você controle a mudança de estado entre o modelo de apoio e sua apresentação.
actions: {
name: function (model) {
// do things
}
}
As ações podem ser invocadas chamando {{action ‘name’ this}}.
Definir uma ação de ‘nome’ dentro do objeto como uma função receberia a instância do modelo de apoio por meio de ‘isto’ após o nome da ação, se você incluí-la.
Os controladores geralmente devem ser usados como estado – por exemplo, a guia ativa de um widget de três guias – para visualizações. Visualização e controladores são 1: 1 – cada visualização tem um controlador – gerado ou não.
Os controladores não renderizam seu próprio modelo, embora possam chamar uma ação (por meio de uma {{ação}} no modelo) rota pai (ou apresentação). Ações borbulham de controladores para rotas. se não estiver definido no controlador.
Os controladores que são apoiados por um modelo – por exemplo, definindo o objeto .model (você pode ver controller.content indistintamente aqui – está tudo bem, eles definem a mesma coisa) são preenchidos com seu (s) modelo (s) durante o setupController do Route correspondente (modelo, controlador) gancho.
Os controladores que usam Object ou ArrayControllers devem buscar o hook () do model () de sua rota de apresentação ou então criar e retornar o modelo para o Controller.
Os controladores não devem ter estado compartilhado ou público. Mantenha-os breves e apresentáveis.
As ações do controlador não devem ser usadas para modificar modelos. defina esses tipos de ações na rota de apresentação para que o controlador possa ser atualizado ou renderizado novamente sem preocupação.
Um controlador e uma visão são 1: 1, mas um modelo contém apenas html, e quaisquer visões inseridas com o auxiliar {{visão}}, ou o auxiliar {{#view}} {{/ visão}}.
Uma ação do controlador deve ser o que é chamado quando um evento específico da visualização é capturado. (mousedown, touchStart, clique e assim por diante)