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

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.

Vagas .Net - Projeto CNSA

Prezados, Estamos selecionando candidados, em forma de cadastro de reserva, para participar do projeto: Cadastro Nacional de Sociedade de Advogados, na Assessoria de Tecnologia da Informação do Conselho Federal da OAB. Basicamente teremos 3 fases: * Avaliação Curricular; * Entrevista Pessoal; * Verificação prática; Outras informações: Vaga: Desenvolvedor .NET. Quantidade: 3. Tempo: 4 meses. Segue abaixo os requisitos que devem ser atendidos pelo candidato: Conhecimentos básicos * Conhecimento avançado em C#; * Conhecimento em ASP.NET 2.0; * ADO.NET 2.0; * SQL SERVER 2005 (DML, stored procedures, MER); * UML (Interpretação de casos de uso, diagrama de atividades, de classe, de sequência); * Experiência em projetos anteriores com ASP.NET e C#; Desejável * LINQ TO SQL; * Conhecimento em JavaScript e padrões Web (XHTML, CSS, etc); * ASP.NET 3.5; * C# 3.0 (LINQ, Propriedade implementadas automaticamente, Métodos de Extensão, Expressão Lamb...

Lista de IPs DNS Oi nos Estados

As vezes quando colocamos um IP fixo para uma máquina na rede, e esta rede tem acesso a internet através da rede da Oi, bem provável que você não conseguirá acessar a internet. Para resolver o problema defina o DNS primário e Secundário nas propriedades da placa de rede. - Protocolo TCP/IP Versão 4 (TCP/IPv4). Segue lista de DNS por estado. RS 201.10.1.2 201.10.120.3 SC 201.10.120.3 201.10.1.2 PR 201.10.120.2 201.10.128.3 GO 201.10.128.3 201.10.120.3 DF 201.10.128.2 201.10.120.2 MS 201.10.128.3 201.10.1.2 MT 201.10.128.2 201.10.120.3 RO/AC 201.10.128.2 201.10.1.2