Você pode adicionar diretivas ao HTML em seu projeto Angular. Alguns controlam a estrutura de sua marcação, enquanto outros se concentram nos atributos.

Este artigo passará pelas seis diretivas Angular mais comuns: ngFor, ngIf, ngClass, ngStyle, ngModel e ngSwitch.

O que são diretivas angulares?

As diretivas Angular permitem que você use instruções if e for loops e adicione outro comportamento ao código HTML de um projeto Angular.

instagram viewer
Diretiva Descrição
*ngSe Você pode usar ngIf quando quiser que determinados blocos HTML sejam exibidos apenas se atenderem a uma determinada condição. Por exemplo, se você tiver um formulário com um pop-up exibido após um usuário inserir uma entrada para um determinado campo.
*ngPara Você pode usar ngFor se precisar de um determinado bloco para repetir muitas vezes. Por exemplo, se você tivesse uma lista de itens e precisasse exibir uma div para cada item.
*ngClass Isso adiciona um estilo condicional usando uma classe. Se uma instrução if atender à condição, ela aplicará a classe especificada.
*ngEstilo Isso adiciona um estilo em linha condicional. Se uma instrução if atender à condição, ela aplicará os estilos especificados.
*ngModelo Isso permite que você faça a ligação bidirecional. Isso significa que você pode passar dados em ambas as direções entre o arquivo HTML e TypeScript. Por exemplo, você pode passar o valor de um atributo do arquivo TypeScript para o arquivo HTML e vice-versa.
*ngSwitch Isso permite adicionar uma instrução switch com muitos casos para verificar muitos valores. Com base nos casos, alguns elementos HTML serão exibidos.

As diretivas estruturais envolvem a estrutura dos elementos HTML. Estes incluem ngIf, ngFor e ngSwitch. As diretivas de atributo envolvem a alteração das propriedades dos elementos HTML. Isso inclui ngStyle, ngClass e ngModel.

Como usar ngIf

Para usar ngIf, você precisará de uma condição para avaliar como true para que um elemento HTML específico seja exibido.

  1. Adicione duas variáveis ​​ao seu arquivo TypeScript. Neste exemplo, há uma variável noPlaylists e uma variável para armazenar as listas de reprodução. Esta variável será avaliada como verdadeira se o comprimento da matriz de listas de reprodução for 0.
    noPlaylists: boolean = false;
    listas de reprodução: qualquer = [];

    construtor() { }
    ngOnInit(): void {
    if (this.playlists.length 0) {
    this.noPlaylists = true;
    }
    }

  2. No HTML, adicione a instrução *ngIf. Se noPlaylists for verdadeiro, a mensagem de erro contida no intervalo abaixo será exibida. Caso contrário, não. Você pode aplicar ngIf a diferentes tipos de Tags HTML.

    Não há listas de reprodução disponíveis.

  3. Para adicionar um componente "else" à instrução if, você precisará adicionar o código HTML para a parte "else" em um bloco de modelo.

    Não há listas de reprodução disponíveis.



    Listas de reprodução encontradas.

Como usar o ngFor

Se você precisar repetir um certo número de blocos em uma página, você pode usar a diretiva ngFor.

  1. No arquivo TypeScript, adicione itens à matriz.
    listas de reprodução: qualquer = [
    {"name": "Rock", "numberOfSongs": 5},
    {"name": "Contemporâneo", "numberOfSongs": 9},
    {"name": "Popular", "numberOfSongs": 14},
    {"name": "Acústico", "numberOfSongs": 3},
    {"name": "Canções de casamento", "numberOfSongs": 25},
    {"name": "Metal", "numberOfSongs": 0},
    ];
  2. No arquivo HTML, adicione a instrução *ngFor.
    Listas de reprodução encontradas.


    {{playlist.name}}
    {{playlist.numberOfSongs}} músicas


    Dentro do ngFor, você poderá referenciar cada objeto no array usando a variável "playlist". "playlist.name" e "playlist.numberOfSongs" imprimirão ambos os atributos dentro do marcação.

Como usar o ngClass

Você pode alterar a classe de estilo que um determinado div usa, com base em uma condição.

  1. Adicione duas classes ao arquivo CSS com estilos diferentes. Você pode adicionar qualquer tipo de Estilo CSS você deseja, como cores de fundo diferentes.
    .songs {
    cor de fundo: #F7F5F2;
    }
    .noSongs {
    cor de fundo: #FFA8A8;
    }
  2. Dentro do loop for da etapa anterior, adicione a diretiva de atributo ngClass. [ngClass]="playlist.numberOfSongs > 0? 'songs': 'noSongs'" está usando o mesmo operador ternário que JavaScript e outras linguagens usam.


    {{playlist.name}}
    {{playlist.numberOfSongs}} músicas

    Se o número de músicas for maior que zero, aplicará a classe "songs" ao div. Isso dará à div uma cor de fundo cinza. Caso contrário, se o número de músicas for zero, ele aplicará a classe "noSongs" ao div. Isso dará à div uma cor de fundo vermelha.

Como usar o ngStyle

Em vez de usar ngClass, você pode usar ngStyle se quiser aplicar estilo in-line em vez de estilo por meio de uma classe.

  1. Altere o ngClass da etapa anterior para usar ngStyle.

    {{playlist.name}}
    {{playlist.numberOfSongs}} músicas


  • Se você precisar aplicar mais de um estilo embutido, poderá separar cada estilo com uma vírgula.
    [ngStyle]="{'background-color': playlist.numberOfSongs > 0? '#F7F5F2': '#FFA8A8', 'color': playlist.numberOfSongs > 0? 'preto': 'azul escuro' }"
  • Como usar o ngModel

    Você pode usar ngModel para ligação bidirecional. Isso significa que você pode passar o valor de um atributo entre arquivos HTML e TypeScript.

    Por exemplo, digamos que você tenha um elemento de entrada no arquivo HTML que usa ngModel. O atributo ngModel está vinculado a uma variável no arquivo TypeScript. Quando você insere um valor na entrada, ele atualiza a variável no arquivo TypeScript.

    As alterações feitas no atributo no arquivo TypeScript também refletirão no HTML se outros divs estiverem usando essa variável.

    1. Em app.module.ts, adicione o FormsModule nas importações na parte superior do arquivo e também na matriz de importações.
      importe { FormsModule } de '@angular/forms';
      @NgModule({
      importações: [
      ...
      Módulo de formulários
      ]
      })
    2. Adicione um atributo no arquivo TypeScript para acompanhar quando o usuário está renomeando uma lista de reprodução.
      renomeandoPlaylists: boolean = false;
    3. Torne a variável playlists pública para que possa ser acessada ao usar ngModel no arquivo HTML.
      listas de reprodução públicas: qualquer = [
      ...
      ];
    4. Adicione dois botões no arquivo HTML, o que permitirá renomear ou cancelar a renomeação de cada lista de reprodução.

    5. Adicione uma caixa de entrada dentro do div de cada lista de reprodução. A entrada só será visível quando você clicar no botão Renomear lista de reprodução botão. Esta caixa de entrada terá um ngModel vinculado a "playlist.name".

      Quando você insere um novo nome na caixa de entrada, playlist.name será atualizado no arquivo TypeScript. Isso também atualizará os outros divs no arquivo HTML que usam playlist.name.

    Como usar o ngSwitch

    Você pode usar ngSwitch para exibir determinados elementos com base nos casos dentro de um caso de switch.

    1. Adicione um novo atributo "rating" aos objetos dentro do array de playlists. Este atributo pode ser qualquer número entre 0 e 5 (inclusive).
      listas de reprodução públicas: qualquer = [
      {"name": "Rock", "numberOfSongs": 5, "rating": 5},
      {"name": "Contemporâneo", "numberOfSongs": 9, "rating": 1},
      {"name": "Popular", "numberOfSongs": 14, "rating": 5},
      {"name": "Acústico", "numberOfSongs": 3, "rating": 4},
      {"name": "Canções de casamento", "numberOfSongs": 25, "rating": 5},
      {"name": "Metal", "numberOfSongs": 0, "rating": 0},
      ];
    2. Adicione uma caixa de seleção abaixo do nome e número de músicas para uma lista de reprodução. Com base no número de classificação da lista de reprodução, a lista de reprodução mostrará o número correto de estrelas.

      {{playlist.name}}
      {{playlist.numberOfSongs}} músicas



      ★★

      ★★★

      ★★★★

      ★★★★★

      Nenhuma classificação


    Aprendendo mais com o Angular

    Agora você aprendeu o básico das diretivas Angular, incluindo como usar ngIf, ngFor, ngClass, ngStyle, ngModel e ngSwitch. Você pode combiná-los para criar interfaces de usuário mais complexas. Há muito mais para você explorar e aprender sobre Angular, não importa se você é iniciante ou avançado.

    Os 8 principais cursos de Angular para iniciantes e usuários avançados

    Leia a seguir

    CompartilharTweetCompartilharE-mail

    Tópicos relacionados

    • Programação
    • Programação
    • JavaScript
    • HTML
    • CSS

    Sobre o autor

    Sharlene von Drehnen (5 artigos publicados)

    Sharlene é Tech Writer na MUO e também trabalha em tempo integral em Desenvolvimento de Software. Ela é bacharel em TI e tem experiência anterior em Garantia de Qualidade e tutoria universitária. Sharlene adora jogar e tocar piano.

    Mais de Sharlene Von Drehnen

    Assine a nossa newsletter

    Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

    Clique aqui para assinar