Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Rotas e Ações

Em uma tela em que temos 4 abas o código do controller ficou com mais de 1.600 linhas, então pensei, como posso resolver isso usando a mesma rota, mas com um controller para cada aba.

Por exemplo, hoje:

~/app/NomeDaFuncionalidade/Index

Na view que responde por essa rota tenho um controle com 4 abas e para isso tenho um controller apenas. Porém, como falei, ficou gigante e gostaria que cada aba tivesse o seu controller, porém respondendo dentro da mesma rota, de forma que não seja necessário recarregar toda a tela novamente.

Seria possível, ou não. Para ter um controller para cada aba, teria que submeter tudo novamente.

4 respostas
solução!

Caso esteja utilizando o "ui-router" para o gerenciamento de suas rotas, é possível utilizar as views nomeadas. Desse forma, é possível configurar diversas views para uma unica rota, cada view com seu template e controller, por exemplo:

<!-- index.html -->
<body>
  <div ui-view="filters"></div>
  <div ui-view="tabledata"></div>
  <div ui-view="graph"></div>
</body>
$stateProvider
  .state('report', {
    views: {
      'filters': { ... templates and/or controllers ... },
      'tabledata': {},
      'graph': {},
    }
  })

Esse código eu retirei da documentação que você pode acessar nesse link: https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views.

Caso esteja utilizando o ngRoute, acredito que o mesmo não suporte de maneira nativa.

Só não entendi a sua última frase.

No mais, desde já agradeço sua atenção.

E aí, você chega no projeto e vê que estão utilizando angular-ui-router.js e angular-route.js, por acaso traria algum problema futuro ou é normal utilizar assim mesmo?

Corrigi a última frase, estava relmente incorreta.

Sobre sua última pergunta, é possível utilizar os dois, mas não é comum e nem faz muito sentido, já que que o ui-route faz tudo que o ngRoute faz e com mais algumas funcionalidades, uma delas é a que comentei.

Obs.: O angular-route.js que você citou é justamente o ngRoute que citei.

Ola Marcelo,

Muito obrigado pelo retorno!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software