Gli ultimi tutorial di sviluppo web
 

AngularJS direttive


AngularJS permette di estendere HTML con nuovi attributi chiamati direttive.

AngularJS ha una serie di direttive built-in che offre funzionalità alle applicazioni.

AngularJS consente inoltre di definire le proprie direttive.


AngularJS direttive

AngularJS direttive sono estese attributi HTML con il prefisso ng- .

Il ng-app direttiva inizializza un'applicazione AngularJS.

Il ng-init direttiva inizializza i dati delle applicazioni.

Il ng-model direttiva associa il valore di controlli HTML (input, selezionare, textarea) per i dati delle applicazioni.

Leggi tutte le direttive AngularJS nei nostri AngularJS riferimento direttiva .

Esempio

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

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

</div>
Prova tu stesso "

Il ng-app direttiva indica anche AngularJS che il <div> elemento è il "proprietario" della domanda AngularJS.


Associazione dati

Il {{ firstName }} espressione, nell'esempio di cui sopra, è un AngularJS dati di espressione vincolanti.

Associazione dati in AngularJS lega AngularJS espressioni con dati AngularJS.

{{ firstName }} è legato con ng-model="firstName" .

Nel prossimo esempio due campi di testo sono legati insieme a due direttive ng-modello:

Esempio

<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>
Prova tu stesso "
Nota Utilizzando ng-init non è molto comune. Imparerete come inizializzare i dati nel capitolo sui controller.

Ripetendo Elementi HTML

Il ng-repeat direttiva ripete un elemento HTML:

Esempio

<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
  <ul>
    <li ng-repeat="x in names">
      {{ x }}
    </li>
  </ul>
</div>
Prova tu stesso "

Il ng-repeat direttiva in realtà cloni elementi HTML una volta per ogni elemento in una collezione.

Il ng-repeat direttiva usato su un array di oggetti:

Esempio

<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>
Prova tu stesso "
Nota AngularJS è perfetto per CRUD database (Crea Leggi Aggiornamento Delete) applicazioni.
Provate a immaginare se questi oggetti fossero record da un database.

La direttiva ng-app

Il ng-app direttiva definisce l'elemento principale di un'applicazione AngularJS.

Il ng-app direttiva si auto-bootstrap (inizializzare automaticamente) l'applicazione quando una pagina web viene caricata.


La direttiva ng-init

Il ng-init direttiva definisce i valori iniziali per un'applicazione AngularJS.

Normalmente, non utilizzerà ng-init. Si utilizzerà un controller o di un modulo invece.

Si impara di più sui controller e moduli in seguito.


La direttiva ng-modello

Il ng-model direttiva associa il valore di controlli HTML (input, selezionare, textarea) per i dati delle applicazioni.

Il ng-model direttiva anche in grado di:

  • Fornire la convalida tipo per i dati delle applicazioni (numero, e-mail, richiesto).
  • Fornire stato per i dati delle applicazioni (non validi, sporco, toccato, errore).
  • Fornire classi CSS per gli elementi HTML.
  • elementi HTML Bind per moduli HTML.

Per saperne di più sul ng-model direttiva nel prossimo capitolo.


Crea nuove direttive

In aggiunta a tutte le direttive AngularJS built-in, è possibile creare le proprie direttive.

Le nuove direttive sono creati utilizzando il .directive funzione.

Per richiamare la nuova direttiva, effettuare un elemento HTML con lo stesso nome del tag come la nuova direttiva.

Quando si nomina una direttiva, è necessario utilizzare un nome caso cammello, w3TestDirective , ma quando si invoca, è necessario utilizzare - nome separato, w3-test-directive :

Esempio

<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>
Prova tu stesso "

È possibile richiamare una direttiva mediante:

  • nome dell'elemento
  • Attributo
  • Classe
  • Commento

Gli esempi che seguono saranno tutti produrre lo stesso risultato:

nome dell'elemento

<w3-test-directive></w3-test-directive>
Prova tu stesso "

Attributo

<div w3-test-directive></div>
Prova tu stesso "

Classe

<div class="w3-test-directive"></div>
Prova tu stesso "

Commento

<!-- directive: w3-test-directive -->
Prova tu stesso "

restrizioni

È possibile limitare le direttive ad essere invocate solo alcuni dei metodi.

Esempio

Con l'aggiunta di una restrict proprietà con il valore "A" , la direttiva può essere fatta valere solo per attributi:

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

I limitare valori legali sono:

  • E per il nome dell'elemento
  • A per l'attributo
  • C per la classe
  • M per Comment

Per impostazione predefinita, il valore è EA , il che significa che entrambi i nomi degli elementi ei nomi degli attributi possono invocare la direttiva.