Moduli AngularJS
โก Riepilogo intelligente
In AngularJS, i moduli fungono da contenitori che raggruppano controller, servizi, direttive e filtri dietro un unico confine logico, in modo che la direttiva ng-app carichi solo le funzionalitร effettivamente necessarie a una singola pagina in fase di esecuzione.
Cos'รจ un modulo AngularJS?
Un modulo definisce la funzionalitร dell'applicazione che viene applicata all'intera pagina HTML utilizzando la direttiva ng-app. Definisce funzionalitร , come i servizi, direttivee filtri, in modo da facilitarne il riutilizzo in diverse applicazioni.
L'illustrazione qui sopra riassume tale confine.
In tutti i nostri precedenti esercitazioniAvrete notato la direttiva ng-app utilizzata per definire l'applicazione Angular principale. Questo รจ uno dei concetti chiave dei moduli in AngularJS.
โ ๏ธ Nota sulla versione: Il supporto per AngularJS รจ terminato a gennaio 2022.. Moderno Angular Utilizza @NgModule e i componenti standalone sono la sua impostazione predefinita. Il codice seguente รจ storico.
Come creare un modulo in AngularJS
Prima di iniziare con ciรฒ che รจ un modulo, vediamo un esempio di un Applicazione AngularJS senza un modulo e poi comprendere la necessitร di avere moduli nella propria applicazione.
Consideriamo la possibilitร di creare un file chiamato "DemoController.js" e di aggiungere il codice seguente al file
function DemoController($scope) {
$scope.a=1;
$scope.b=2;
$scope.c=$scope.b + $scope.a;
}
Nel codice sopra, abbiamo creato una funzione chiamata "DemoController" che fungerร da controller all'interno della nostra applicazione.
In questo controller, stiamo semplicemente eseguendo l'addizione di 2 variabili a e b e assegnando l'addizione di queste variabili a una nuova variabile, c, e riassegnandola a portata oggetto.
Ora creiamo il nostro Sample.html principale, che sarร la nostra applicazione principale. Inseriamo lo snippet di codice seguente nella nostra pagina HTML.
<body ng-app=""> <div ng-controller="DemoController"> <h3> Guru99 Global Event</h3> {{c}}
Nel codice sopra, includiamo il nostro DemoController e quindi invochiamo il valore della variabile $scope.c tramite un'espressione.
Ma nota la nostra direttiva ng-app, ha un valore vuoto.
- Ciรฒ significa sostanzialmente che รจ possibile accedere a livello globale a tutti i controller richiamati nell'ambito della direttiva ng-app. Non esiste alcun confine che separi piรน controller l'uno dall'altro.
- Ora, nella programmazione moderna, รจ una cattiva pratica avere controller non collegati a nessun modulo e renderli accessibili a livello globale. Deve esserci un confine logico definito per i controller.
Ed รจ qui che entrano in gioco i moduli. I moduli vengono utilizzati per creare quella separazione dei confini e assistere nella separazione dei controller in base alla funzionalitร .
Modifichiamo il codice sopra per implementare i moduli e colleghiamo il nostro controller a questo modulo
var sampleApp = angular.module('sampleApp',[]); sampleApp.controller('DemoController', function($scope) { $scope.a=1; $scope.b=2; $scope.c=$scope.b + $scope.a; });
Notiamo le principali differenze nel codice scritto sopra
-
var sampleApp = angular.module('sampleApp',[]);
Stiamo creando specificamente un modulo AngularJS chiamato "sampleApp". Ciรฒ costituirร un confine logico per la funzionalitร che questo modulo conterrร . Quindi, nel nostro esempio precedente, abbiamo un modulo che contiene un controller che svolge il ruolo di aggiunta di 2 oggetti ambito. Quindi, possiamo avere un modulo con un confine logico che dice che questo modulo eseguirร solo la funzionalitร dei calcoli matematici per l'applicazione.
-
sampleApp.controller('DemoController', function($scope)
Stiamo ora collegando il controller al nostro modulo AngularJS "sampleApp". Ciรฒ significa che, se non facciamo riferimento al modulo "sampleApp" nel nostro codice HTML principale, non saremo in grado di accedere alle funzionalitร del nostro controller.
Segger contro getter: angular.module crea un modulo solo quando dipendenza L'array viene passato; senza di esso, la chiamata recupera un modulo esistente.
Il nostro codice HTML principale ora apparirร come mostrato di seguito
<body ng-app="sampleApp"> <div ng-controller="DemoController"> <h3> Guru99 Global Event</h3> {{c}}
Notiamo le differenze chiave nel codice scritto sopra e nel nostro codice precedente
<body ng-app="sampleApp">
Nel nostro tag del corpo,
- Invece di avere una direttiva ng-app vuota, ora chiameremo il modulo sampleApp.
- Richiamando questo modulo applicativo, ora possiamo accedere al controller "DemoController" e alle funzionalitร presenti nel controller demo.
Moduli e controller in AngularJS
In AngularJS, il modello utilizzato per lo sviluppoping La caratteristica principale delle moderne applicazioni web รจ la creazione di moduli e controller multipli per separare logicamente i diversi livelli di funzionalitร .
Normalmente i moduli verranno archiviati separatamente JavaCopione file, che sarebbero diversi dal file dell'applicazione principale.
Diamo un'occhiata a un esempio di come ciรฒ puรฒ essere ottenuto.
Nell'esempio seguente,
- Creeremo un file chiamato Utilities.js che conterrร 2 moduli, uno per eseguire la funzionalitร di addizione e l'altro per eseguire la funzionalitร di sottrazione.traczione.
- Creeremo quindi 2 file dell'applicazione separati e accederemo al file Utility da ciascun file dell'applicazione.
- In un file dell'applicazione accederemo al modulo per l'addizione e nell'altro accederemo al modulo per la sostituzionetraczione.
Passo 1) Definire il codice per piรน moduli e controller.
var AdditionApp = angular.module('AdditionApp',[]); AdditionApp.controller('DemoAddController', function($scope) { $scope.a=5; $scope.b=6; $scope.c=$scope.a + $scope.b; }); var SubractionApp = angular.module('SubtractionApp',[]); SubractionApp.controller('DemoSubtractController', function($scope) { $scope.a=8; $scope.b=6; $scope.d=$scope.a - $scope.b; });
Notiamo i punti chiave nel codice scritto sopra
-
var AdditionApp = angular.module('AdditionApp',[]); var SubractionApp = angular.module('SubtractionApp',[]);
Sono stati creati 2 moduli AngularJS separati, uno chiamato 'AdditionApp' e il secondo chiamato 'Sub'.tractionApp'.
-
AdditionApp.controller('DemoAddController', function($scope) SubractionApp.controller('DemoSubtractController', function($scope)
Per ogni modulo sono definiti 2 controller separati: uno si chiama DemoAddController e l'altro DemoSub.tractController. Ogni controller ha una logica separata per l'addizione e la sottrazionetraczione dei numeri.
Passo 2) Crea i file dell'applicazione principale. Creiamo un file chiamato ApplicationAddition.html e aggiungiamo il codice seguente
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Addition</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="lib/utilities.js"></script>
</head>
<body>
<div ng-app = "AdditionApp" ng-controller="DemoAddController">
Addition :{{c}}
</div>
</body>
</html>
Notiamo i punti chiave nel codice scritto sopra
-
<script src="/lib/Utilities.js"></script>Stiamo facendo riferimento al nostro file Utilities.js nel nostro file dell'applicazione principale. Questo ci consente di fare riferimento a qualsiasi modulo AngularJS definito in questo file.
-
<div ng-app = "AdditionApp" ng-controller="DemoAddController">
Stiamo accedendo al modulo "AdditionApp" e DemoAddController utilizzando la direttiva ng-app e il ng-controller rispettivamente.
-
{{c}}Poichรฉ stiamo facendo riferimento al modulo e al controller sopra menzionati, possiamo fare riferimento alla variabile $scope.c tramite un'espressione. L'espressione sarร il risultato della somma delle 2 variabili scope a e b effettuata nel Controller 'DemoAddController'
Allo stesso modo faremo per il sottoscrittotracfunzione di zione.
Passo 3) Crea i file principali della tua applicazione. Creiamo un file chiamato "ApplicationSubtraction.htmlโ e aggiungi il codice seguente
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Addition</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="lib/utilities.js"></script>
</head>
<body>
<div ng-app = "SubtractionApp" ng-controller="DemoSubtractController">
Subtraction :{{d}}
</div>
</body>
</html>
Notiamo i punti chiave nel codice scritto sopra
-
<script src="/lib/Utilities.js"></script>Stiamo facendo riferimento al nostro file Utilities.js nel nostro file dell'applicazione principale. Questo ci consente di fare riferimento a qualsiasi modulo definito in questo file.
-
<div ng-app = " SubtractionApp " ng-controller=" DemoSubtractController ">
Stiamo accedendo al 'Subtracmodulo tionApp e DemoSubtractController utilizzando rispettivamente la direttiva ng-app e ng-controller.
-
{{d}}Poichรฉ facciamo riferimento al modulo e al controller sopra menzionati, siamo in grado di fare riferimento alla variabile $scope.d tramite un'espressione. L'espressione sarร il risultato della subroutine.traczione delle 2 variabili di ambito a e b che รจ stata effettuata nel 'DemoSubtractController' Controller
