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

Tela de "Carregando" dentro da ng-view ou fora?

Senhores bom dia!!!

Na discussão " [resolvido] Serviço ou rootScope?" O Flávio explicou a importância de evitar ao máximo a utilização do rootScope, e que para compartilhamento de informações tentar usar serviços.

Mas agora tenho outra dúvida, imagina a seguinte situação:

Possuo uma tela de "loading" que será utilizada toda vez que o usuário fizer alguma ação que demande tempo e que ele precise esperar. Esse componente de loading, possui um ng-show atrelado a uma variável que ficará true ou false dependendo da ação.

Inicialmente, coloquei esse componente fora do ng-view, assim como fiz também com um Header, justamente para não precisar ficar repetindo a todo momento em todas as páginas.

Dessa forma sou obrigado a usar o rootScope, justamente para todas os controllers terem acesso ao estado da variável que vai exibir esse componente ou não na tela. Isso é o correto?

2 respostas

Uma solução que achei, que na minha opinião fica a mesma coisa que o rootScope é usar um controller em cima desse componente "loading", esse controller irá chamar um serviço que retornará um objeto. Esse Objeto teria a informação se o meu loading deve ou não ser exibido. Assim se qualquer controller da minha aplicação chamar esse serviço e mudar esse objeto, automaticamente a referencia que está no controller do "loading" mudará também.

Mas será que isso não seria a mesma coisa que usar o rootScope?

Segue a URL que achei essa solução: http://plnkr.co/edit/2u2ZDE?p=preview

solução!

Amigos,

Acabei utilizando o module disponível no gitHub angular-loading-bar, que por sinal é muito bom, ele fica escutando requisições http e automaticamente coloca o loading. Totalmente personalizável.

http://chieffancypants.github.io/angular-loading-bar/

Abraços.

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