tutoriais mais recente desenvolvimento web
 

AngularJS directivas


AngularJS permite estender HTML com novos atributos chamados directivas.

AngularJS tem um conjunto de directivas embutidos que oferece funcionalidade para suas aplicações.

AngularJS também permite definir suas próprias diretrizes.


directivas AngularJS

AngularJS directivas são estendidos atributos HTML com o prefixo ng- .

O ng-app directiva inicializa uma aplicação AngularJS.

O ng-init directiva inicializa dados da aplicação.

O ng-model directiva vincula o valor dos controles HTML (input, select, textarea) para dados de aplicativos.

Leia sobre todas as directivas AngularJS em nossos AngularJS referência directiva .

Exemplo

<div ng-app="" ng-init="firstName='John'">

<p>Name: <input type="text" ng-model="firstName"></p>
<p>You wrote: {{ firstName }}</p>

</div>
Tente você mesmo "

O ng-app directiva também diz AngularJS que o elemento <div> é o "dono" da aplicação AngularJS.


Ligação de dados

O {{ firstName }} expressão, no exemplo acima, é um AngularJS de dados de expressão de ligação.

Dados obrigatório em AngularJS liga expressões AngularJS com dados AngularJS.

{{ firstName }} está vinculado com ng-model="firstName" .

No próximo exemplo, dois campos de texto estão unidos com duas directivas ng-modelo:

Exemplo

<div ng-app="" ng-init="quantity=1;price=5">

Quantity: <input type="number" ng-model="quantity">
Costs:    <input type="number" ng-model="price">

Total in dollar: {{ quantity * price }}

</div>
Tente você mesmo "
Nota Usando ng-init não é muito comum. Você vai aprender como inicializar dados no capítulo sobre os controladores.

Repetindo elementos HTML

O ng-repeat directiva repete um elemento HTML:

Exemplo

<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
  <ul>
    <li ng-repeat="x in names">
      {{ x }}
    </li>
  </ul>
</div>
Tente você mesmo "

O ng-repeat directiva realmente clona elementos HTML uma vez para cada item em uma coleção.

O ng-repeat directiva usado em uma matriz de objetos:

Exemplo

<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">

<ul>
  <li ng-repeat="x in names">
    {{ x.name + ', ' + x.country }}
  </li>
</ul>

</div>
Tente você mesmo "
Nota AngularJS é perfeito para CRUD banco de dados (Criar Leia Atualizar Excluir) aplicações.
Imaginem se esses objetos eram registros de um banco de dados.

A directiva ng-app

O ng-app directiva define o elemento raiz de um aplicativo AngularJS.

O ng-app directiva auto-inicialização (automaticamente inicializar) a aplicação quando uma página é carregada.


A directiva ng-init

O ng-init directiva define valores iniciais para uma aplicação AngularJS.

Normalmente, você não vai usar ng-init. Você vai usar um controlador ou módulo em seu lugar.

Você vai aprender mais sobre os controladores e módulos mais tarde.


A directiva ng-modelo

O ng-model directiva vincula o valor dos controles HTML (input, select, textarea) para dados de aplicativos.

O ng-model diretiva também pode:

  • Fornecer validação de tipo de dados de aplicativo (número, e-mail, é necessário).
  • Fornece o status de dados de aplicativos (inválido, sujo, tocado, erro).
  • Fornecer classes CSS para elementos HTML.
  • elementos HTML ligam a formulários HTML.

Leia mais sobre o ng-model directiva no próximo capítulo.


Criar novas directivas

Além de todas as directivas AngularJS built-in, você pode criar suas próprias diretrizes.

Novas directivas são criados usando o .directive função.

Para chamar a nova directiva, tornar um elemento HTML com o mesmo nome de marca como a nova directiva.

Ao nomear uma directiva, você deve usar um nome caso camelo, w3TestDirective , mas quando invocá-lo, você deve usar - nome separados, w3-test-directive :

Exemplo

<body ng-app="myApp">

<w3-test-directive></w3-test-directive>

<script>
var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
    return {
        template : "<h1>Made by a directive!</h1>"
    };
});
</script>

</body>
Tente você mesmo "

Você pode invocar uma directiva usando:

  • nome do elemento
  • Atributo
  • Classe
  • Comente

Os exemplos abaixo todos produzem o mesmo resultado:

nome do elemento

<w3-test-directive></w3-test-directive>
Tente você mesmo "

Atributo

<div w3-test-directive></div>
Tente você mesmo "

Classe

<div class="w3-test-directive"></div>
Tente você mesmo "

Comente

<!-- directive: w3-test-directive -->
Tente você mesmo "

restrições

Pode restringir as directivas apenas para ser invocada por alguns dos métodos.

Exemplo

Ao adicionar um restrict propriedade com o valor "A" , a directiva só pode ser invocada pelos atributos:

var app = angular.module("myApp", []);
app.directive("w3TestDirective", function() {
    return {
        restrict : "A",
        template : "<h1>Made by a directive!</h1>"
    };
});
Tente você mesmo "

Os valores restringem legais são:

  • E para nome Elemento
  • A de Atributo
  • C para a Classe
  • M for Comment

Por padrão o valor é EA , o que significa que ambos os nomes de elementos e nomes de atributos pode invocar a directiva.