Moduli AngularJS
Un modulo AngularJS definisce un'applicazione.
Il modulo è un contenitore per le diverse parti di un'applicazione.
Il modulo è un contenitore per i controller delle applicazioni.
I controller appartengono sempre a un modulo.
Creazione di un modulo
Un modulo viene creato utilizzando la funzione AngularJSangular.module
<div ng-app="myApp">...</div>
<script>
var app = angular.module("myApp", []);
</script>
Il parametro "myApp" si riferisce a un elemento HTML in cui verrà eseguita l'applicazione.
Ora puoi aggiungere controller, direttive, filtri e altro alla tua applicazione AngularJS.
Aggiunta di un controller
Aggiungi un controller alla tua applicazione e fai riferimento al controller con la
ng-controller
direttiva:
Esempio
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var
app
= angular.module("myApp",
[]);
app.controller("myCtrl", function($scope) {
$scope.firstName
= "John";
$scope.lastName
= "Doe";
});
</script>
Imparerai di più sui controller più avanti in questo tutorial.
Aggiunta di una direttiva
AngularJS ha una serie di direttive integrate che puoi usare per aggiungere funzionalità alla tua applicazione.
Per un riferimento completo, visita il nostro riferimento alla direttiva AngularJS .
Inoltre puoi utilizzare il modulo per aggiungere le tue direttive alle tue applicazioni:
Esempio
<div ng-app="myApp" w3-test-directive></div>
<script>
var app =
angular.module("myApp", []);
app.directive("w3TestDirective",
function() {
return {
template : "I was made in a directive constructor!"
};
});
</script>
Imparerai di più sulle direttive più avanti in questo tutorial.
Moduli e controller nei file
È comune nelle applicazioni AngularJS inserire il modulo e i controller in file JavaScript.
In questo esempio, "myApp.js" contiene una definizione del modulo dell'applicazione, mentre "myCtrl.js" contiene il controller:
Esempio
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app="myApp"
ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script src="myApp.js"></script>
<script src="myCtrl.js"></script>
</body>
</html>
miaApp.js
var app = angular.module("myApp", []);
Il parametro [] nella definizione del modulo può essere utilizzato per definire i moduli dipendenti.
Senza il parametro [], non stai creando un nuovo modulo, ma ne stai recuperando uno esistente.
mioCtrl.js
app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName= "Doe";
});
Le funzioni possono inquinare lo spazio dei nomi globale
Le funzioni globali dovrebbero essere evitate in JavaScript. Possono essere facilmente sovrascritti o distrutti da altri script.
I moduli AngularJS riducono questo problema, mantenendo tutte le funzioni locali al modulo.
Quando caricare la libreria
Sebbene sia comune nelle applicazioni HTML posizionare gli script alla fine
<body>
dell'elemento, si consiglia di caricare la libreria AngularJS nella <head>
o all'inizio del file <body>
.
Questo perché le chiamate a angular.module
possono essere compilate solo dopo che la libreria è stata caricata.
Esempio
<!DOCTYPE html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<div ng-app="myApp"
ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp",
[]);
app.controller("myCtrl", function($scope) {
$scope.firstName
= "John";
$scope.lastName
= "Doe";
});
</script>
</body>
</html>