Diretivas AngularJS: ng-init, ng-app, ng-model e ng-repeat
โก Resumo Inteligente
As diretivas do AngularJS estendem o HTML simples com novos comportamentos. Os marcadores ng-app, ng-init, ng-model e ng-repeat inicializam uma aplicaรงรฃo, preenchem dados locais, vinculam controles de formulรกrio ao modelo e clonam elementos uma vez por item de coleรงรฃo.

O que รฉ diretiva em AngularJS?
A Directiva Em AngularJS, um comando adiciona novas funcionalidades ao HTML. Quando o AngularJS percorre o cรณdigo HTML, ele primeiro encontra as diretivas na pรกgina e, em seguida, analisa o HTML de acordo. Um exemplo simples de diretiva AngularJS, que vimos em capรญtulos anteriores, รฉ a diretiva "ng-model". Essa diretiva รฉ usada para vincular nosso modelo de dados ร nossa visualizaรงรฃo.
Observaรงรฃo: Vocรช pode ter cรณdigo AngularJS bรกsico em uma pรกgina HTML com as diretivas ng-init, ng-repeat e ng-model sem a necessidade de Controllers. A lรณgica dessas diretivas estรก no arquivo AngularJS fornecido por GoogleOs controladores sรฃo construรงรตes de programaรงรฃo AngularJS de nรญvel superior que permitem a implementaรงรฃo da lรณgica de negรณcios, mas, como mencionado, para uma aplicaรงรฃo ser considerada uma aplicaรงรฃo AngularJS, nรฃo รฉ obrigatรณrio ter um controlador.
Mas como รฉ que um navegador acaba executando um?
Como as diretivas do AngularJS funcionam no HTML
Como definimos na introduรงรฃo, uma diretiva AngularJS รฉ uma forma de estender a funcionalidade de HTMLQuando a pรกgina รฉ carregada, o compilador AngularJS percorre o DOM, compara cada elemento com as diretivas registradas e aplica o comportamento encontrado.
AngularJS O sistema vem com dezenas de diretivas integradas, alรฉm de quaisquer outras que vocรช registre. As quatro explicadas abaixo com exemplos prรกticos โ ng-app, ng-init, ng-model e ng-repeat โ sรฃo as primeiras que os iniciantes encontram. Antes desses exemplos, observe as quatro maneiras pelas quais uma diretiva pode ser escrita.
Quais sรฃo os quatro tipos de diretivas do AngularJS?
Uma diretiva nem sempre รฉ um atributo. O compilador AngularJS pode identificar uma diretiva pelo nome do elemento, atributo, nome da classe ou comentรกrio, e cada diretiva declara quais formas aceita por meio de sua formataรงรฃo. restrict propriedade. O padrรฃo รฉ EAPortanto, a sintaxe de elemento e atributo funciona, a menos que vocรช especifique o contrรกrio. O valor รฉ mais importante quando vocรช escreve sua prรณpria diretiva, porque o compilador ignora qualquer forma que o valor de `restrict` exclua.
| restringir valor | Correspondido por | Exemplo de marcaรงรฃo | Uso tรญpico |
|---|---|---|---|
| E | Nome do elemento | Blocos independentes que possuem um modelo. | |
| A | Atributo | Adicionando comportamento a um elemento existente | |
| C | Nome da classe | Marcaรงรฃo legada que nรฃo aceita novos atributos. | |
| M | Comentรกrio | Raro, mantido para compatibilidade com versรตes anteriores. |
๐ก Dica: Prefira a sintaxe de elemento e atributo. Referรชncia oficial de diretivas do AngularJS Trata formulรกrios de classe e comentรกrios como opรงรตes legadas. Os exemplos abaixo usam sintaxe de atributo.
ng-app em AngularJS
Esta diretiva รฉ usada para inicializar uma aplicaรงรฃo AngularJS. Quando presente em uma pรกgina HTML, ela basicamente informa ao AngularJS que esta pรกgina HTML รฉ uma aplicaรงรฃo AngularJS.
Exemplo de ng-app
O exemplo abaixo mostra como transformar uma aplicaรงรฃo HTML comum em uma aplicaรงรฃo AngularJS.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app=""> Tutorial Name : {{ "Angular" + "JS"}} </div> </body> </html>
โ ๏ธ Atenรงรฃo: O anรบncio mantรฉm o original. chrset="UTF 8", exatamente como publicado. O atributo correto รฉ charset="UTF-8".
Code Explicaรงรฃo:
- A diretiva โng-appโ รฉ adicionada ร nossa tag div para indicar que esta aplicaรงรฃo รฉ uma aplicaรงรฃo AngularJS. Observe que a diretiva ng-app pode ser aplicada a qualquer tag, portanto, tambรฉm pode ser inserida na tag body.
- Como definimos esta aplicaรงรฃo como uma aplicaรงรฃo AngularJS, agora podemos utilizar as funcionalidades do AngularJS. No nosso caso, estamos usando expressรตes para simplesmente concatenar duas strings.
Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก exibida.
Saรญda:
O resultado mostra claramente o efeito da expressรฃo, o que sรณ foi possรญvel porque definimos a aplicaรงรฃo como uma aplicaรงรฃo AngularJS. A prรณxima diretiva fornece os seus dados.
ng-init em AngularJS
Isso รฉ usado para inicializar os dados da aplicaรงรฃo. รs vezes, vocรช pode precisar de alguns dados locais para sua aplicaรงรฃo, e isso pode ser feito com a diretiva ng-init.
Exemplo de ng-init
Neste exemplo, vamos criar uma variรกvel chamada โTutorialNameโ usando a diretiva ng-init e exibir o valor dessa variรกvel na pรกgina.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="TutorialName='Angular JS'"> Tutorial Name : {{ TutorialName}} </div> </body> </html>
Code Explicaรงรฃo:
- A diretiva ng-init รฉ adicionada ร nossa tag div para definir uma variรกvel local chamada โTutorialNameโ e o valor dado a ela รฉ โAngularJSโ.
- Estamos usando expressรตes em AngularJS para exibir o resultado da variรกvel chamada โTutorialNameโ, que foi definida em nossa diretiva ng-init.
Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก exibida.
Saรญda:
Na saรญda,
- O resultado mostra claramente a saรญda da expressรฃo que contรฉm a string โAngularJSโ. Isso ocorre porque a string โAngularJSโ foi atribuรญda ร variรกvel 'TutorialName' na seรงรฃo ng-init.
A prรณxima diretiva envia dados da tela de volta para o modelo.
modelo ng em AngularJS
E, por fim, temos a diretiva ng-model, que รฉ usada para vincular o valor de um controle HTML aos dados do aplicativo.
Exemplo de modelo ng
Neste exemplo,
- Vamos criar 2 variรกveis โโchamadas โquantidadeโ e โpreรงoโ. Essas variรกveis โโserรฃo vinculadas a 2 controles de entrada de texto.
- Em seguida, exibiremos o valor total com base na multiplicaรงรฃo dos valores de preรงo e quantidade.
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="quantity=1;price=5"> People : <input type="number" ng-model="quantity"> Registration Price : <input type="number" ng-model="price"> Total : {{quantity * price}} </div> </body> </html>
Code Explicaรงรฃo:
- A diretiva ng-init รฉ adicionada ร nossa tag div para definir 2 variรกveis โโlocais; um รฉ chamado de โquantidadeโ e o outro รฉ โpreรงoโ.
- Agora estamos usando a diretiva do modelo ng para vincular as caixas de texto โPessoasโ e โPreรงo de registroโ ร s nossas variรกveis โโlocais โquantidadeโ e โpreรงoโ, respectivamente.
- Por fim, mostramos o Total por meio de uma expressรฃo, que รฉ a multiplicaรงรฃo das variรกveis โโquantidade e preรงo.
Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก exibida.
Saรญda:
- A saรญda mostra claramente a multiplicaรงรฃo dos valores de Pessoas e Preรงo de Registro.
Agora, se vocรช alterar os valores de "Pessoas" e "Preรงo de inscriรงรฃo" nas caixas de texto, o Total serรก alterado automaticamente.
- O resultado acima demonstra o poder do data binding no AngularJS, que รฉ alcanรงado com o uso do diretiva do modelo ng.
O รบltimo dos quatro processa vรกrios valores simultaneamente.
ng-repetir em AngularJS
Isso รฉ usado para repetir um elemento HTML. O exemplo abaixo mostra como usar o diretiva ng-repeat.
Exemplo de repetiรงรฃo ng
Neste exemplo,
- Teremos um array de nomes de capรญtulos em uma variรกvel de array e
- em seguida, use a diretiva ng-repeat para exibir cada elemento da matriz como um item de lista
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> </head> <body> <script src="https://code.angularjs.org/1.6.9/angular-route.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="https://code.angularjs.org/1.6.9/angular.min.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <h1> Guru99 Global Event</h1> <div ng-app="" ng-init="chapters=['Controllers','Models','Filters']"> <ul> <li ng-repeat="names in chapters"> {{names}} </li> </ul> </div> </body> </html>
Code Explicaรงรฃo:
- A diretiva ng-init รฉ adicionada ร nossa tag div para definir uma variรกvel chamada โcapรญtulosโ, que รฉ uma variรกvel de array contendo 3 strings.
- O elemento ng-repeat รฉ usado declarando uma variรกvel embutida chamada โnomesโ e percorrendo cada elemento na matriz de capรญtulos.
- Finalmente, estamos mostrando o valor da variรกvel embutida local 'nomes'.
Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก exibida.
Saรญda:
- A saรญda acima mostra apenas que a diretiva ng-repeat pegou cada valor do array chamado โcapรญtulosโ e criou itens de lista HTML para cada item do array.
Esses quatro elementos abrangem inicializaรงรฃo, dados, vinculaรงรฃo e repetiรงรฃo. A lista abaixo mostra o que vem a seguir.
Outras diretivas integradas do AngularJS comumente usadas
As quatro diretivas acima sรฃo o conjunto inicial, nรฃo a biblioteca completa. Cada entrada abaixo รฉ um atributo que vocรช coloca diretamente no elemento que ele controla.
- ng-bind: Insere um valor de escopo no texto de um elemento sem exibir brevemente as chaves brutas ao carregar a pรกgina.
- ng-if: Remove o elemento do DOM quando sua expressรฃo for falsa e o recria quando for verdadeira.
- ng-show e ng-hide: Toggle visibilidade com CSS. O elemento permanece no DOM, portanto, alternรขncias repetidas tรชm um custo menor.
- ng-class: Adiciona ou remove classes CSS de uma expressรฃo, permitindo que o estilo siga o modelo.
- ng-click: Executa uma expressรฃo ou uma funรงรฃo de escopo quando o usuรกrio clica no elemento.
- ng-controller: Anexa um controlador a um bloco de marcaรงรฃo quando a pรกgina ultrapassa os limites do ng-init.
- ng-disabled e ng-readonly: Defina o atributo de formulรกrio correspondente sempre que a expressรฃo for verdadeira.
As perguntas frequentes abaixo respondem ร s dรบvidas mais comuns que surgem apรณs esta lista.









