Diretivas AngularJS: ng-init, ng-app, ng-model e ng-repeat

O que é diretiva em AngularJS?

A Directiva em AngularJS é um comando que fornece novas funcionalidades ao HTML. Quando o Angular passa pelo código HTML, ele primeiro encontra as diretivas na página e depois analisa a página HTML de acordo. Um exemplo simples de diretiva AngularJS, que vimos nos capítulos anteriores, é a “diretiva ng-model”. Esta diretiva é usada para vincular nosso modelo de dados à nossa visão.

Nota: Você pode ter código angular básico em uma página HTML com as diretivas ng-init, ng-repeat e ng-model sem a necessidade de controladores. A lógica para essas diretivas está no arquivo Angular.js fornecido pelo Google. Controladores são construções de programação angular de próximo nível que permitem lógica de negócios, mas, como mencionado, para que um aplicativo seja angular, não é obrigatório ter um controlador.

Como criar diretivas em AngularJS

Conforme definimos na introdução, as diretivas AngularJS são uma forma de estender a funcionalidade do HTML.

Existem 4 diretivas definidas em AngularJS.

Abaixo está a lista das diretivas AngularJS junto com exemplos fornecidos para explicar cada uma delas.

ng-app em AngularJS

Isso é usado para inicializar um aplicativo Angular.JS. Quando esta diretiva é aplicada em uma página HTML, ela basicamente informa ao Angular que esta página HTML é um aplicativo angular.js.

Exemplo de np-app

O exemplo abaixo mostra como usar a diretiva ng-app. Neste exemplo, vamos simplesmente mostrar como transformar um aplicativo HTML normal em um aplicativo angularJS.

ng-app em 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>

Explicação do código:

  1. A diretiva “ng-app” é adicionada à nossa tag div para indicar que este aplicativo é um aplicativo angular.js. Observe que a diretiva ng-app pode ser aplicada a qualquer tag, portanto também pode ser colocada na tag body.
  2. Como definimos este aplicativo como um aplicativo angular.js, agora podemos fazer uso da funcionalidade angular.js. No nosso caso, estamos usando expressões para simplesmente concatenar 2 strings.

Se o código for executado com sucesso, a seguinte saída será mostrada quando você executar o código no navegador.

Saída:

ng-app em AngularJS

A saída mostra claramente a saída da expressão que só foi possível porque definimos o aplicativo como um aplicativo angularjs.

ng-init em AngularJS

Isso é usado para inicializar os dados do aplicativo. Às vezes você pode precisar de alguns dados locais para sua aplicação, isso pode ser feito com a diretiva ng-init.

Exemplo de ng-init

O exemplo abaixo mostra como usar a diretiva 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.

ng-init em 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="" ng-init="TutorialName='Angular JS'">

    Tutorial Name : {{ TutorialName}}

</div>

</body>
</html>

Explicação do código:

  1. A diretiva ng-init é adicionada à nossa tag div para definir uma variável local chamada “TutorialName” e o valor dado a ela é “AngularJS”.
  2. Estamos usando expressões em AngularJs para exibir a saída do nome da variável “TutorialName” que foi definida em nossa diretiva ng-init.

Se o código for executado com sucesso, a seguinte saída será mostrada quando você executar o código no navegador.

Saída:

ng-init em AngularJS

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.

modelo ng em AngularJS

E, finalmente, temos a diretiva ng-model, que é usada para vincular o valor de um controle HTML aos dados do aplicativo. O exemplo abaixo mostra como usar a diretiva ng-model.

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.

modelo ng em 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="" 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>

Explicação do código:

  1. A diretiva ng-init é adicionada à nossa tag div para definir 2 variáveis ​​locais; um é chamado de “quantidade” e o outro é “preço”.
  2. 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.
  3. 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á mostrada quando você executar o código no navegador.

Saída:

modelo ng em AngularJS

  • A saída mostra claramente a multiplicação dos valores de Pessoas e Preço de Registro.

Agora, se você for até as caixas de texto e alterar o valor do preço de Pessoas e Inscrições, o Total mudará automaticamente.

modelo ng em AngularJS

  • A saída acima mostra apenas o poder da vinculação de dados em angularJs, que é alcançado com o uso do diretiva do modelo ng.

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

ng-repetir em 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="" ng-init="chapters=['Controllers','Models','Filters']">
    <ul>
        <li ng-repeat="names in chapters">
            {{names}}
        </li>
    </ul>

</div>

</body>
</html>

Explicação do código:

  1. 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.
  2. O elemento ng-repeat é usado declarando uma variável embutida chamada “nomes” e percorrendo cada elemento na matriz de capítulos.
  3. Finalmente, estamos mostrando o valor da variável embutida local 'nomes'.

Se o código for executado com sucesso, a seguinte saída será mostrada quando você executar o código no navegador.

Saída:

ng-repetir em AngularJS

  • 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.

Resumo

  • As diretivas são usadas para estender a funcionalidade do HTML. Angular fornece diretivas integradas, como
    • ng-app – Isso é usado para inicializar um aplicativo angular.
    • ng-init – Isso é usado para criar variáveis ​​de aplicativo
    • ng-model – Isso é usado para vincular controles HTML aos dados do aplicativo
    • ng-repeat – Usado para repetir elementos usando angular.