Direttive AngularJS: ng-init, ng-app, ng-model e ng-repeat
โก Riepilogo intelligente
Le direttive AngularJS estendono il semplice HTML con nuove funzionalitร . I โโmarcatori ng-app, ng-init, ng-model e ng-repeat avviano un'applicazione, popolano i dati locali, collegano i controlli del modulo al modello e clonano gli elementi una volta per ogni elemento della collezione.

Cos'รจ la direttiva in AngularJS?
A Direttiva In AngularJS, `ng-model` รจ un comando che aggiunge nuove funzionalitร all'HTML. Quando AngularJS analizza il codice HTML, individua innanzitutto le direttive presenti nella pagina e poi la interpreta di conseguenza. Un semplice esempio di direttiva AngularJS, che abbiamo giร visto nei capitoli precedenti, รจ la direttiva `ng-model`. Questa direttiva viene utilizzata per collegare il modello dati alla vista.
Nota: ร possibile avere codice AngularJS di base in una pagina HTML con le direttive ng-init, ng-repeat e ng-model senza la necessitร di avere Controller. La logica per queste direttive si trova nel file AngularJS fornito da GoogleI controller sono costrutti di programmazione AngularJS di livello superiore che consentono di implementare la logica di business, ma, come giร accennato, per essere considerata un'applicazione AngularJS non รจ obbligatorio avere un controller.
Ma come fa un browser a finire per eseguirne uno?
Come funzionano le direttive AngularJS in HTML
Come abbiamo definito nell'introduzione, una direttiva AngularJS รจ un modo per estendere la funzionalitร di HTMLQuando la pagina viene caricata, il compilatore AngularJS analizza il DOM, confronta ogni elemento con le direttive registrate e applica il comportamento che trova.
AngularJS Include decine di direttive predefinite, oltre a quelle che puoi registrare tu stesso. Le quattro direttive spiegate di seguito con esempi pratici, ng-app, ng-init, ng-model e ng-repeat, sono quelle che i principianti incontrano per prime. Prima di questi esempi, osserva i quattro modi in cui una direttiva puรฒ essere scritta.
Quali sono i quattro tipi di direttive AngularJS?
Una direttiva non รจ sempre un attributo. Il compilatore AngularJS puรฒ trovarne una in base al nome dell'elemento, all'attributo, al nome della classe o al commento, e ogni direttiva dichiara quali forme accetta tramite il suo restrict proprietร . Il valore predefinito รจ EAPertanto, sia la sintassi degli elementi che quella degli attributi funzionano a meno che non si specifichi diversamente. Il valore รจ piรน importante quando si scrive una direttiva personalizzata, perchรฉ il compilatore ignora qualsiasi forma esclusa dal valore di restrizione.
| limitare il valore | Corrispondenza con | Esempio di markup | Utilizzo tipico |
|---|---|---|---|
| E | Nome dell'elemento | blocchi autonomi che possiedono un modello | |
| A | Attributo | Aggiungere un comportamento a un elemento esistente | |
| C | Nome della classe | Markup obsoleto che non puรฒ accettare nuovi attributi | |
| M | Commento | Raro, mantenuto per la compatibilitร con le versioni precedenti. |
๐ก Suggerimento: Preferire la sintassi degli elementi e degli attributi. Riferimento ufficiale alla direttiva AngularJS Tratta i moduli di classe e di commento come opzioni obsolete. Gli esempi seguenti utilizzano tutti la sintassi degli attributi.
ng-app in AngularJS
Questa direttiva viene utilizzata per inizializzare un'applicazione AngularJS. Quando questa direttiva รจ presente in una pagina HTML, indica ad AngularJS che tale pagina HTML รจ un'applicazione AngularJS.
Esempio di ng-app
L'esempio seguente mostra come trasformare una normale applicazione HTML in un'applicazione 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>
โ ๏ธ Attenzione: L'inserzione mantiene l'originale chrset="UTF 8", esattamente come pubblicato. L'attributo corretto รจ charset="UTF-8".
Code Spiegazione:
- La direttiva "ng-app" viene aggiunta al nostro tag div per indicare che questa applicazione รจ un'applicazione AngularJS. Si noti che la direttiva ng-app puรฒ essere applicata a qualsiasi tag, quindi puรฒ essere inserita anche nel tag body.
- Poichรฉ abbiamo definito questa applicazione come un'applicazione AngularJS, ora possiamo utilizzare le funzionalitร di AngularJS. Nel nostro caso, utilizziamo le espressioni per concatenare semplicemente due stringhe.
Se il codice viene eseguito correttamente, verrร visualizzato l'output seguente.
Produzione:
L'output mostra chiaramente il risultato dell'espressione, cosa resa possibile solo perchรฉ abbiamo definito l'applicazione come un'applicazione AngularJS. La direttiva successiva fornisce i relativi dati.
ng-init in AngularJS
Questo viene utilizzato per inizializzare i dati dell'applicazione. A volte potrebbe essere necessario disporre di dati locali per l'applicazione, e ciรฒ puรฒ essere fatto tramite la direttiva ng-init.
Esempio di ng-init
In questo esempio, creeremo una variabile chiamata "TutorialName" utilizzando la direttiva ng-init e visualizzeremo il valore di quella variabile sulla pagina.
<!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 Spiegazione:
- La direttiva ng-init viene aggiunta al nostro tag div per definire una variabile locale chiamata "TutorialName" e il valore assegnato a questa รจ "AngularJS".
- In AngularJS utilizziamo delle espressioni per visualizzare l'output della variabile "TutorialName", definita nella nostra direttiva ng-init.
Se il codice viene eseguito correttamente, verrร visualizzato l'output seguente.
Produzione:
Nell'output,
- Il risultato mostra chiaramente l'output dell'espressione che contiene la stringa โAngularJSโ. Ciรฒ รจ dovuto al fatto che la stringa "AngularJS" รจ stata assegnata alla variabile "TutorialName" nella sezione ng-init.
La direttiva successiva invia i dati dallo schermo al modello.
modello ng in AngularJS
Infine, abbiamo la direttiva ng-model, utilizzata per associare il valore di un controllo HTML ai dati dell'applicazione.
Esempio di modello ng
In questo esempio,
- Creeremo 2 variabili chiamate โquantitร โ e โprezzoโ. Queste variabili saranno associate a 2 controlli di input di testo.
- Visualizzeremo quindi l'importo totale in base alla moltiplicazione dei valori del prezzo e della quantitร .
<!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 Spiegazione:
- La direttiva ng-init viene aggiunta al nostro tag div per definire 2 variabili locali; uno si chiama โquantitร โ e lโaltro รจ โprezzoโ.
- Ora stiamo utilizzando la direttiva ng-model per associare le caselle di testo "Persone" e "Prezzo di registrazione" rispettivamente alle nostre variabili locali "quantitร " e "prezzo".
- Infine, mostriamo il Totale tramite un'espressione, che รจ la moltiplicazione delle variabili quantitร e prezzo.
Se il codice viene eseguito correttamente, verrร visualizzato l'output seguente.
Produzione:
- L'output mostra chiaramente la moltiplicazione dei valori per Persone e Prezzo di registrazione.
Ora, se modifichi i valori di Persone e Prezzo di iscrizione nelle caselle di testo, il Totale si aggiorna automaticamente.
- L'output sopra riportato mostra semplicemente la potenza del data binding in AngularJS, che viene ottenuta con l'uso del direttiva sul modello ng.
L'ultimo dei quattro gestisce molti valori contemporaneamente.
ng-ripetizione in AngularJS
Viene utilizzato per ripetere un elemento HTML. L'esempio seguente mostra come utilizzare il file direttiva ng-repeat.
Esempio di ng-repeat
In questo esempio,
- Avremo un array di nomi di capitoli in una variabile di array e
- quindi utilizzare la direttiva ng-repeat per visualizzare ciascun elemento dell'array come elemento di elenco
<!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 Spiegazione:
- La direttiva ng-init viene aggiunta al nostro tag div per definire una variabile chiamata "capitoli" che รจ una variabile array contenente 3 stringhe.
- L'elemento ng-repeat viene utilizzato dichiarando una variabile inline chiamata "names" e esaminando ciascun elemento nell'array capitoli.
- Infine, mostriamo il valore della variabile inline locale 'names'.
Se il codice viene eseguito correttamente, verrร visualizzato l'output seguente.
Produzione:
- L'output sopra mostra semplicemente che la direttiva ng-repeat ha preso ogni valore nell'array chiamato "capitoli" e ha creato elementi di elenco HTML per ogni elemento nell'array.
Questi quattro passaggi riguardano l'avvio, i dati, il binding e la ripetizione. L'elenco seguente mostra cosa viene dopo.
Altre direttive AngularJS integrate di uso comune
Le quattro direttive sopra riportate costituiscono il set iniziale, non l'intera libreria. Ciascuna voce seguente รจ un attributo che si applica direttamente all'elemento che controlla.
- ng-bind: Scrive un valore di ambito nel testo di un elemento senza mostrare brevemente le parentesi graffe al caricamento.
- ng-if: Rimuove l'elemento dal DOM quando la sua espressione รจ falsa e lo ricostruisce quando รจ vera.
- ng-show e ng-hide: Toggle visibilitร tramite CSS. L'elemento rimane nel DOM, quindi le attivazioni/disattivazioni ripetute hanno un costo inferiore.
- ng-class: Aggiunge o rimuove classi CSS da un'espressione, consentendo allo stile di seguire il modello.
- ng-click: Esegue un'espressione o una funzione di ambito quando l'utente fa clic sull'elemento.
- ng-controller: Collega un controller a un blocco di markup quando la pagina supera le dimensioni di ng-init.
- ng-disabled e ng-readonly: Imposta l'attributo del modulo corrispondente ogni volta che la loro espressione รจ vera.
Le FAQ riportate di seguito rispondono alle domande che piรน spesso seguono questo elenco.









