Diretivas AngularJS ng-click, ng-show e ng-hide

โšก Resumo Inteligente

Os eventos do AngularJS permitem que um aplicativo web responda ร  entrada do usuรกrio, como cliques do mouse, pressionamentos de teclas e aรงรตes de passar o mouse sobre um elemento. Diretivas como ng-click, ng-show e ng-hide vinculam esse comportamento declarativamente na marcaรงรฃo, em vez de por meio de ouvintes DOM manuais.

  • ๐Ÿ–ฑ๏ธ Tratamento de cliques: O ng-click associa uma expressรฃo ou funรงรฃo de controlador a um elemento, geralmente um botรฃo.
  • ๐Ÿ‘๏ธ Exibiรงรฃo condicional: ng-show exibe um elemento quando sua expressรฃo รฉ verdadeira, enquanto ng-hide o remove quando a expressรฃo รฉ verdadeira.
  • ???? Mecanismo: Ambas as diretivas alternam a classe CSS ng-hide integrada, que define a propriedade display como none, fazendo com que o elemento permaneรงa no DOM.
  • ๐Ÿ”— Vinculaรงรฃo de escopo: Uma variรกvel de membro colocada em `$scope` controla a visibilidade, e alterรก-la dentro de um manipulador atualiza a visualizaรงรฃo imediatamente.
  • ๐Ÿ“‹ ร‚mbito da diretiva: Dezoito diretivas de ouvinte abrangem eventos de desfoque, alteraรงรฃo, foco, teclado, mouse, colar e enviar.
  • โš ๏ธ Status do suporte: O AngularJS chegou ao fim de sua vida รบtil em 31 de dezembro de 2021, portanto, novos projetos devem ter como alvo o Angular moderno.

AngularJS ng-click ng-show ng-hide Diretivas

Eventos AngularJS

Eventos AngularJS Sรฃo as funcionalidades que permitem que as aplicaรงรตes web interajam com as entradas do usuรกrio, como cliques do mouse, entrada de teclado e passagem do cursor sobre o objeto. Os eventos devem ser tratados nas aplicaรงรตes web para executar tarefas e aรงรตes especรญficas, e cada evento รฉ acionado quando o usuรกrio realiza a aรงรฃo correspondente.

Ao criar aplicaรงรตes web, mais cedo ou mais tarde sua aplicaรงรฃo precisarรก lidar com eventos DOM, como cliques e movimentos do mouse, pressionamentos de teclado e eventos de alteraรงรฃo. AngularJS Fornece diretrizes que lidam com esses eventos de forma declarativa.

Por exemplo, se um botรฃo na pรกgina deve executar alguma aรงรฃo ao ser clicado, a diretiva de evento ng-click fornece esse gancho.

โš ๏ธ Aviso de suporte: AngularJS alcanรงou fim da vida em 31 de dezembro de 2021 e nรฃo recebe mais patches ou correรงรตes de seguranรงa da equipe do Angular. As diretivas abaixo permanecem vรกlidas para a manutenรงรฃo de aplicativos AngularJS 1.x existentes; para novos projetos, use a versรฃo moderna. Angular, onde essas diretivas sรฃo substituรญdas por associaรงรตes de eventos, como (click) e por *ngIf.

O que รฉ a diretiva ng-click no AngularJS?

O โ€œdiretiva ng-clickโ€ Em AngularJS, aplica-se um comportamento personalizado quando um elemento HTML รฉ clicado. Normalmente, รฉ usado em botรตes, jรก que esses sรฃo os locais mais comuns para associar respostas de clique, e tambรฉm รฉ usado para exibir alertas ao clicar.

Sintaxe de ng-click em AngularJS

<element
 ng-click="expression">
</element>

Exemplo de ng-clique em AngularJS

Neste exemplo de ng-click, uma variรกvel de contador รฉ incrementada cada vez que o usuรกrio clica em um botรฃo.

Diretiva ng-click em AngularJS

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body ng-app="">

<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>

<button ng-click="count = count + 1" ng-init="count=0">
    Increment
</button>

<div>The Current Count is {{count}}</div>

</body>
</html>

Code Explicaรงรฃo:

  1. A diretiva ng-init define a variรกvel local. count para 0.
  2. A diretiva ng-click no botรฃo incrementa count por 1 a cada clique.
  3. A interpolaรงรฃo {{count}} Exibe o valor atual para o usuรกrio.

Saรญda:

ng-clique em AngularJS

O botรฃo "Incrementar" รฉ exibido e a contagem รฉ inicialmente zero. Clicar nele incrementa o valor, como mostra a imagem abaixo.

ng-clique em AngularJS

O que รฉ a diretiva ng-show no AngularJS?

O diretiva ng-show mostra ou oculta um determinado HTML elemento baseado na expressรฃo fornecida ao atributo ng-show. Internamente, o elemento รฉ exibido ou ocultado removendo ou adicionando o .ng-hide Classe CSS, uma classe predefinida que define display para none.

Sintaxe de ng-show em AngularJS

<element
 ng-show="expression">
</element>

Exemplo de ng-show em AngularJS

Este exemplo usa ng-show para revelar um elemento oculto.

Diretiva ng-show em AngularJS

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
    <input type="button" value="Show Angular" ng-click="ShowHide()"/>

    <br><br><div ng-show="IsVisible">Angular</div>
</div>

<script type="text/javascript">

    var app = angular.module('DemoApp', []);

    app.controller('DemoController', function($scope) {
        $scope.IsVisible = false;

        $scope.ShowHide = function() {
            $scope.IsVisible = true;
        };
    });
</script>

</body>
</html>

Code Explicaรงรฃo:

  1. A diretiva ng-click no botรฃo faz referรชncia a um ShowHide funรงรฃo definida no controlador DemoController.
  2. O atributo ng-show estรก associado ร  div que contรฉm o texto Angular. ร‰ esse elemento que tem sua visibilidade controlada.
  3. No controlador, o IsVisible A variรกvel membro รฉ colocada no objeto de escopo e inicializada com o valor false, portanto, a div fica oculta quando a pรกgina รฉ carregada pela primeira vez. Com ng-show, um valor de verdadeiro exibe o elemento e falso esconde isso.
  4. O ShowHide conjuntos de funรงรตes IsVisible para que a div fique visรญvel.

Saรญda:

Diretiva ng-show em AngularJS

A div que contรฉm o texto nรฃo รฉ exibida inicialmente, porque IsVisible Comeรงa como falso. Clicando Mostrar Angular Define como verdadeiro e o texto fica visรญvel.

Diretiva ng-show em AngularJS

O que รฉ a diretiva ng-hide no AngularJS?

O diretiva ng-hide Oculta um elemento quando sua expressรฃo รฉ avaliada como VERDADEIRA e exibe o elemento quando a expressรฃo รฉ FALSA โ€” o inverso exato de `ng-show`. Internamente, utiliza o mesmo... .ng-hide Classe CSS.

Sintaxe de ng-hide em AngularJS

<element
 ng-hide="expression">
</element>

Exemplo de ng-hide em AngularJS

Este exemplo espelha o exemplo do ng-show para que as duas diretivas possam ser comparadas diretamente.

Diretiva ng-hide em AngularJS

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
    <input type="button" value="Hide Angular" ng-click="ShowHide()"/>

    <br><br><div ng-hide="IsVisible">Angular</div>
</div>

<script type="text/javascript">

    var app = angular.module('DemoApp', []);

    app.controller('DemoController', function($scope) {
        $scope.IsVisible = false;

        $scope.ShowHide = function() {
            $scope.IsVisible = true;
        };
    });
</script>

</body>
</html>

Code Explicaรงรฃo:

  1. A diretiva ng-click no botรฃo faz referรชncia a ShowHide funcionam em DemoController.
  2. O ng-ocultar O atributo รฉ anexado ร  div que contรฉm o texto Angular.
  3. IsVisible รฉ inicializado para falseComo se trata de ng-hide em vez de ng-show, um valor falso significa que a div estรก oculta. visรญvel quando a pรกgina รฉ carregada pela primeira vez.
  4. O ShowHide conjuntos de funรงรตes IsVisible para verdadeiro, o que oculta a div.

Saรญda:

Diretiva ng-hide em AngularJS

A div รฉ exibida inicialmente porque o valor `false` รฉ passado para `ng-hide`. Clicando Ocultar Angular passa a ser verdade e a palavra desaparece.

Diretiva ng-hide em AngularJS

ng-show vs ng-hide vs ng-if: principais diferenรงas

Trรชs diretivas controlam se o usuรกrio vรช um elemento, e a escolha entre elas afeta tanto o comportamento quanto o desempenho de renderizaรงรฃo. As duas primeiras apenas alternam uma classe CSS, portanto o elemento estรก sempre presente na pรกgina; a terceira adiciona e remove o prรณprio elemento.

Aspecto ng-show ng-ocultar ng-if
Elemento visรญvel quando A expressรฃo รฉ verdadeira. A expressรฃo รฉ falsa. A expressรฃo รฉ verdadeira.
Elemento no DOM Sempre Sempre Somente enquanto for verdade
Mรฉtodo usado Togglclasse .ng-hide Togglclasse .ng-hide Cria e destrรณi o elemento.
Coleira infantil Compartilha o escopo pai Compartilha o escopo pai Cria um novo escopo filho
Observadores quando escondidos Ainda ativo Ainda ativo Removido
Melhor para Alternรขncia frequente do conteรบdo de luz Condiรงรตes invertidas Conteรบdo pesado exibido raramente

Use `ng-show` ou `ng-hide` quando um elemento alterna entre elementos com frequรชncia, pois o elemento nunca รฉ reconstruรญdo e a alternรขncia custa apenas uma mudanรงa de classe. Use `ng-if` para seรงรตes dispendiosas exibidas raramente, jรก que remover o elemento tambรฉm remove seus observadores e reduz o custo de atualizaรงรฃo a cada ciclo.

Diretivas de ouvinte de eventos AngularJS

Vocรช pode adicionar ouvintes de eventos do AngularJS a elementos HTML usando um ou mais destes. directivas:

  • ng-desfoque
  • ng-mudanรงa
  • ng-clique
  • ng-cรณpia
  • ng-corte
  • ng-dblclick
  • ng-foco
  • ng-keydown
  • ng-keypress
  • ng-keyup
  • ng-mousedown
  • ng-mouseenter
  • ng-mouseleave
  • ng-mousemove
  • ng-mouseover
  • ng-mouseup
  • ng-colar
  • ng-enviar

Cada diretiva aceita uma expressรฃo, e o evento bruto do navegador estรก disponรญvel dentro dela como $event Quando o manipulador precisar de detalhes como a tecla pressionada ou as coordenadas do clique.

Perguntas Frequentes

Passe o reservado $event variรกvel, como em ng-click="handle($event)"O controlador entรฃo recebe o evento nativo e pode ler o alvo, as coordenadas ou chamar preventDefault.

O ng-repeat cria um escopo filho para cada item, portanto, atribuir um valor primitivo dentro do manipulador atualiza apenas esse filho. Escreva em uma propriedade de objeto no escopo pai ou use $parent, para tornar a mudanรงa visรญvel externamente.

Parcialmente. AI ferramentas convertem ng-click em (click) e ng-show para *ngIf de forma confiรกvel, mas a lรณgica dependente do escopo e as vinculaรงรตes bidirecionais precisam de revisรฃo manual, porque o escopo do AngularJS nรฃo tem um equivalente direto no Angular.

Os assistentes de IA identificam rapidamente as causas mais comuns: a ausรชncia de um ng-app, um nome de controlador que nรฃo corresponde ao registro do mรณdulo ou um erro de digitaรงรฃo no atributo da diretiva. A correรงรฃo sugerida ainda precisa ser testada no navegador.

Nรฃo. O AngularJS fornece apenas ng-show, ng-hide e ng-if. Nรฃo existe uma diretiva ng-visible, e referenciรก-la nรฃo produz efeito algum, pois o AngularJS ignora atributos nรฃo reconhecidos.

Resuma esta postagem com: