Pular para o conteúdo principal

Angular Loading Bar em Páginas Asp.Net

Este exemplo de código mostra como colocar uma barrinha de progresso (Loading Bar) no topo da página para ser exibida quando a página está carregando ou em processamento.

Trechos tirados do site: http://chieffancypants.github.io/angular-loading-bar/#

Baixe o exemplo clicando no link abaixo.

Download exemplo


Vamos ao código!

1o. crie o arquivo HTML e inclua todos os arquivos baixados no site indicado acima.

<!doctype html>
<html>
  <head>
    <title>Angular Loading Bar</title>
    <!-- angular -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/
angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.20/
angular-animate.min.js"></script>

    <!-- loadingbar -->
    <script src="src/loading-bar.js"></script>
    <link href='src/loading-bar.css' rel='stylesheet' />

    <!-- example app -->
    <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/
css/bootstrap.min.css">
    <script src="app.js"></script>
    <link href='app.css' rel='stylesheet' />
  </head>

  <body ng-app="LoadingBarExample" ng-controller="ExampleCtrl">
    <div class="jumbotron">
      <h1>Angular Loading Bar</h1>
      <p>An automatic loading bar using angular interceptors.<small>  It works 
automatically, so simply include it as a dependency and it will automatically 
display the progress of your <code>$http</code> requests.</small></p>
      <p>
        <a href="https://github.com/chieffancypants/angular-loading-bar/archive/
master.zip" class="btn btn-primary btn-lg">
          <i class="glyphicon glyphicon-download"></i>&nbsp;&nbsp;Download
        </a>
        <a href="https://github.com/chieffancypants/angular-loading-bar"  
class="btn btn-default btn-lg">
          <i class="glyphicon glyphicon-share"></i>&nbsp;&nbsp;View on GitHub
        </a>
      </p>
    </div>

  <footer ng-hide="fakeIntro">
    Footer@2016
</footer>

  </body>
 
</html>
 
 

2o. Perceba os atributos adicionados na tag body, eles são necessários para o

funcionamento do controle, pois ele foi criado dentro da biblioteca do Angular.



Criando o HTML e fazendo os includes certinho, já fará com que o componente apareça

assim que você carregar a página.

Outra dica é, se você utiliza UpdatePanel (Asp.Net) ou faz chamadas ajax, uma boa

dica é criar funçoes para interceptar essas chamadas e apresentar o componente

Loading Bar. Veja como:

 Adicione o codigo abaixo abaixo da tag body. Esse script é responsavel por detectar o inicio

e sim de chamadas assíncronas.


 
<script type="text/javascript" language="javascript">

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

function BeginRequestHandler(sender, args) { 
/*loader bar Angular*/
  var scope = angular.element(document.getElementById("body1")).scope();
  scope.$apply(function () {
  scope.start();
 });                    
}

function EndRequestHandler(sender, args) {
 if (args.get_error() != undefined) {
  var errorMessage = args.get_error().message;
  args.set_errorHandled(true);
  alert(errorMessage);
 }
 
 /*loader bar Angular*/
 var scope = angular.element(document.getElementById("body1")).scope();
 scope.$apply(function () {
 scope.complete();
 });
}
 
</script>
 
O que eu fiz foi colocar a chamada ao método start() no BeginRequestHandler, e uma chamada ao metódo complete() dentro da função que detecta o fim da requisição.

var scope = angular.element(document.getElementById("body1")).scope();
scope.$apply(function () {
scope.complete();
});
 
Espero ter ajudado.
 
Um abraço.
 
Willon Santos Félix

Comentários

Postagens mais visitadas deste blog

A batalha por uma SafeKid (Unicamp)

Figura 1 - Cadeira Safekid (Unicamp) Nas consultas usando a ferramenta de busca do Google obtive os seguintes link para a tal cadeira. 1- http://revistacrescer.globo.com/Crescer/0,19125,EFC1010380-2213-2,00.html 2- http://www.ibiubi.com.br/produtos/cadeira-cinto-de-seguran%c3%a7a-safekid-projetado-pela-unicamp+beb%c3%aas-e-crian%c3%a7as+cadeiras/IUID4138740/ 3- http://compras.hsw.uol.com.br/assento-infantil-guia.htm 4- http://produto.mercadolivre.com.br/MLB-123086053-cadeiracinto-de-seguranca-safekid-projetado-pela-unicamp-_JM a própria! só que venda finalizada. Foi então que resolvi procurar no Bing (Microsoft) www.bing.com. Também não encontrei! Rs Encontrei algumas parecidas a preços imbatíveis, mas fora do país. 1- http://www.magazineluiza.com.br/produto/index_Produto.asp?Produto=1766074&linha=BB&Setor=CADA&modelo=08 2- http://www.precomania.com/search_attrib.php/page_id=1990/st=page/page=1 Mas foi no Yahoo buscas que eu encontrei a dita cuja. Quero dizer, um possível ...

Driver para Receptor de TV Digital da Multilaser RE003

Email recebido da central de atendimento da Multilaser para resolver problema de funcionamento do receptor digital em Windows 7. --------------------------------------------------------------------------------- Prezado(a) Cliente, Primeiramente pedimos desculpas por quaisquer transtornos causados. Segue anexo manual passo a passo para a instalação do RE003. Conseguimos desenvolver um novo software para o aparelho, pois o enviado no cd não estava conseguindo localizar canais. Peço a gentileza de seguir o passo a passo e me informar se conseguiu utilizar o produto. Os drivers que irá precisar estão disponíveis no link http://tinyurl.com/j3w3svn Os drivers que irá precisar estão disponíveis no link  http://tinyurl.com/j3w3svn Os drivers que irá precisar estão disponíveis no link  http://tinyurl.com/j3w3svn Instale os drivers e o software Presto! Serial: EVALUATION

EmguCV DLL Not Found Exception -Unable to find cvextern?

Eu também tive os mesmos problemas. Neste fórum emgucv , não sei por que cvextern.dlldo emgucv 3.4.3 não é possível carregar cvextern (porque não é possível encontrar cvextern), e você permitiu usar o arquivo cvextern.dlldo emgucv 3.4.2 (certifique-se de escolher x64 / x86), copie /bin/Debuge este arquivo é encontrado automaticamente /bin/Debug/x86ou /bin/Debug/x64quando você termina de construir o programa no Visual Studio.  O Erro:  The type initializer for 'Emgu.CV.CvInvoke' threw an exception. : Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)  Para resolver o problema copia a pasta x64 ou x86 para dentro da pasta bin da aplicação. Ou copie os arquivos para dentro da pasta bin da aplicação WCF.