Exemplu de rutare AngularJS cu parametri
รnainte de a afla cum funcศioneazฤ rutarea รฎn Angular, sฤ avem doar o prezentare generalฤ rapidฤ a aplicaศiilor cu o singurฤ paginฤ.
Ce sunt aplicaศiile cu o singurฤ paginฤ?
Aplicaศiile cu o singurฤ paginฤ sau (SPA) sunt aplicaศii web care รฎncarcฤ o singurฤ paginฤ HTML ศi actualizeazฤ pagina รฎn mod dinamic pe baza interacศiunii utilizatorului cu aplicaศia web.
Ce este rutarea รฎn AngularJS?
Rutare รฎn AngularJS este o metodฤ care vฤ permite sฤ creaศi aplicaศii cu o singurฤ paginฤ. Vฤ permite sฤ creaศi diferite URLs pentru conศinut diferit รฎn aplicaศiile web. Rutarea AngularJS ajutฤ, de asemenea, la afiศarea mai multor conศinuturi รฎn funcศie de ruta aleasฤ. Este specificatฤ รฎn URL dupฤ semnul #.
Sฤ luฤm exemplul unui site gฤzduit prin intermediul URL http://example.com/index.html.
Pe aceastฤ paginฤ, veศi gฤzdui pagina principalฤ a aplicaศiei dvs. Sฤ presupunem cฤ aplicaศia organiza un Eveniment ศi doreศte sฤ vadฤ care sunt diversele evenimente afiศate sau doreศte sฤ vadฤ detaliile unui anumit eveniment sau sฤ ศteargฤ un eveniment. รntr-o aplicaศie cu o singurฤ paginฤ, cรขnd rutarea este activatฤ, toatฤ aceastฤ funcศionalitate ar fi disponibilฤ prin urmฤtoarele link-uri
http://example.com/index.html#ShowEvent
http://example.com/index.html#DisplayEvent
http://example.com/index.html#DeleteEvent
Simbolul # va fi folosit รฎmpreunฤ cu diferitele rute (ShowEvent, DisplayEvent ศi DeleteEvent).
- Deci, dacฤ utilizatorul ar dori sฤ vadฤ toate evenimentele, ar fi direcศionat cฤtre linkul (http://example.com/index.html#ShowEvent), altfel
- Dacฤ ar dori doar sฤ vadฤ un anumit eveniment, vor fi redirecศionaศi cฤtre link ( http://example.com/index.html#DisplayEvent) Sau
- Dacฤ ar dori sฤ ศterge un eveniment, vor fi direcศionaศi cฤtre link http://example.com/index.html#DeleteEvent.
Reศineศi cฤ principalul URL rฤmรขne la fel.
Adฤugarea rutei AngularJS folosind $routeProvider
Deci, aศa cum am discutat mai devreme, rutele รฎn AngularJS sunt folosite pentru a direcศiona utilizatorul cฤtre o altฤ vizualizare a aplicaศiei dvs. ศi aceastฤ rutare se face pe aceeaศi paginฤ HTML, astfel รฎncรขt utilizatorul sฤ aibฤ experienศa cฤ nu a pฤrฤsit pagina.
Pentru a implementa rutarea, urmฤtorii paศi principali trebuie implementaศi รฎn aplicaศia dvs. รฎn orice ordine specificฤ.
- Referinศฤ la angular-route.js. Acesta este un JavaScenariu fiศier dezvoltat de Google care are toate funcศionalitฤศile de rutare. Acest lucru trebuie plasat รฎn aplicaศia dvs., astfel รฎncรขt sฤ poatฤ face referire la toate modulele principale necesare pentru rutare.
- Urmฤtorul pas important este sฤ adฤugaศi o dependenศฤ la modulul ngRoute din cadrul aplicaศiei dvs. Aceastฤ dependenศฤ este necesarฤ pentru ca funcศionalitatea de rutare sฤ poatฤ fi utilizatฤ รฎn cadrul aplicaศiei. Dacฤ aceastฤ dependenศฤ nu este adฤugatฤ, atunci nu se va putea folosi rutarea รฎn aplicaศia angular.JS.
Mai jos este sintaxa generalฤ a acestei declaraศii. Aceasta este doar o declaraศie normalฤ a unui modul cu includerea cuvรขntului cheie ngRoute.
var module = angular.module("sampleApp", ['ngRoute']);
- Urmฤtorul pas ar fi sฤ vฤ configuraศi $routeProvider. Acest lucru este necesar pentru furnizarea diferitelor rute รฎn aplicaศia dvs. Mai jos este sintaxa generalฤ a acestei declaraศii, care se explicฤ de la sine. Afirmฤ doar cฤ atunci cรขnd este aleasฤ calea relevantฤ, utilizaศi ruta pentru a afiศa vizualizarea datฤ utilizatorului.
when(path, route)
- Linkuri cฤtre traseul dvs. din pagina dvs. HTML. รn pagina dvs. HTML, veศi adฤuga legฤturi de referinศฤ la diferitele rute disponibile รฎn aplicaศia dvs.
<a href="#/route1">Route 1</a><br/>
- รn cele din urmฤ ar fi includerea directiva ng-view, care ar fi รฎn mod normal รฎntr-o etichetฤ div. Aceasta ar fi folositฤ pentru a injecta conศinutul vizualizฤrii atunci cรขnd este aleasฤ ruta relevantฤ.
Exemplu de rutare AngularJS
Acum, sฤ ne uitฤm la un exemplu de rutare folosind paศii menศionaศi mai sus.
รn exemplul nostru de rutare AngularJS cu parametri,
Vom prezenta 2 link-uri utilizatorului,
- Una este sฤ afiศaศi subiectele pentru un JS unghiular desigur, iar celฤlalt este pentru Node.js curs.
- Cรขnd utilizatorul face clic pe oricare dintre linkuri, vor fi afiศate subiectele pentru cursul respectiv.
Pas 1) Includeศi fiศierul cu rutฤ unghiularฤ ca referinศฤ de script.
Acest fiศier de rutฤ este necesar pentru a utiliza funcศionalitฤศile de a avea mai multe rute ศi vizualizฤri. Acest fiศier poate fi descฤrcat de pe site-ul web angular.JS.
Pas 2) Adฤugaศi etichete href care vor reprezenta link-uri cฤtre โSubiecte Angular JSโ ศi โSubiecte Node JSโ.
Pas 3) Adฤugaศi o etichetฤ div cu directiva ng-view care va reprezenta vizualizarea.
Acest lucru va permite vizualizarea corespunzฤtoare sฤ fie injectatฤ ori de cรขte ori utilizatorul face clic pe โSubiecte JS Angularโ sau โSubiecte JS Nodeโ.
Pas 4) รn eticheta de script pentru AngularJS, adฤugaศi โmodulul ngRouteโ ศi serviciul โ$routeProviderโ.
Code Explicaลฃie:
- Primul pas este sฤ vฤ asiguraศi cฤ includeศi โmodulul ngRouteโ. Odatฤ ce acesta este implementat, Angular va gestiona automat rutarea รฎn aplicaศia dvs. Modulul ngRoute, care este dezvoltat de Google are toate funcศionalitฤศile care permit rutarea. Prin adฤugarea acestui modul, aplicaศia va รฎnศelege automat toate comenzile de rutare.
- $routeprovider este un serviciu pe care angular รฎl foloseศte pentru a asculta รฎn fundal rutele care sunt apelate. Deci, atunci cรขnd utilizatorul face clic pe un link, furnizorul de rute din AngularJS va detecta acest lucru ศi apoi va decide pe ce rutฤ sฤ urmeze.
- Creaศi o rutฤ pentru linkul Angular โ Acest bloc รฎnseamnฤ cฤ atunci cรขnd faceศi clic pe linkul Angular, injectaศi fiศierul Angular.html ศi, de asemenea, utilizaศi controlerul โAngularControllerโ pentru a procesa orice logicฤ de afaceri.
- Creaศi o rutฤ pentru linkul Node โ Acest bloc รฎnseamnฤ cฤ atunci cรขnd se face clic pe linkul Nod, injectaศi fiศierul Node.html ศi, de asemenea, utilizaศi Controllerul โNodeControllerโ pentru a procesa orice logicฤ de afaceri.
Pas 5) Urmฤtorul este sฤ adฤugaศi controlere pentru a procesa logica de afaceri atรขt pentru AngularController, cรขt ศi pentru NodeController.
รn fiecare controler, creฤm o serie de perechi cheie-valoare pentru a stoca numele ศi descrierile subiectelor pentru fiecare curs. Variabila matrice โtutorialโ este adฤugatฤ la obiectul scop pentru fiecare controler.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
</head>
<body ng-app="sampleApp">
<title>Event Registration</title>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.js"></script>
<h1> Guru99 Global Event</h1>
<div class="container">
<ul>
<li><a href="#Angular">Angular JS Topics</a></li>
<li><a href="#Node.html">Node JS Topics</a></li>
</ul>
<div ng-view></div>
</div>
<script>
var sampleApp = angular.module('sampleApp',['ngRoute']);
sampleApp.config(['$routeProvider',
function($routeProvider){
$routeProvider.
when('/Angular',{
templateUrl : '/Angular.html',
controller: 'AngularController'
}).
when("/Node", {
templateUrl: '/Node.html',
controller: 'NodeController'
});
}]);
sampleApp.controller('AngularController',function($scope) {
$scope.tutorial = [
{Name:"Controllers",Description :"Controllers in action"},
{Name:"Models",Description :"Models and binding data"},
{Name:"Directives",Description :"Flexibility of Directives"}
]
});
sampleApp.controller('NodeController',function($scope){
$scope.tutorial = [
{Name:"Promises",Description :"Power of Promises"},
{Name:"Event",Description :"Event of Node.js"},
{Name:"Modules",Description :"Modules in Node.js"}
]
});
</script>
</body>
</html>
Pas 6) Creaศi pagini numite Angular.html ศi Node.html. Pentru fiecare paginฤ parcurgem paศii de mai jos.
Aceศti paศi se vor asigura cฤ toate perechile cheie-valoare ale matricei sunt afiศate pe fiecare paginฤ.
- Folosind directiva ng-repeat pentru a parcurge fiecare pereche cheie-valoare definitฤ รฎn variabila tutorial.
- Se afiศeazฤ numele ศi descrierea fiecฤrei perechi cheie-valoare.
- Angular.html
<h2>Anguler</h2>
<ul ng-repeat="ptutor in tutorial">
<li>Course : {{ptutor.Name}} - {{ptutor.Description}}</li>
</ul>
- Node.html
<h2>Node</h2>
<ul ng-repeat="ptutor in tutorial">
<li>Course : {{ptutor.Name}} - {{ptutor.Description}}</li>
</ul>
Dacฤ codul este executat cu succes, urmฤtoarea ieศire va fi afiศatฤ atunci cรขnd rulaศi codul รฎn browser.
ieศire:
Dacฤ faceศi clic pe linkul AngularJS Topics, rezultatul de mai jos va fi afiศat.
Rezultatul aratฤ clar cฤ,
- Cรขnd se face clic pe linkul โSubiecte Angular JSโ, โโrouteProvider pe care l-am declarat รฎn codul nostru decide ca codul Angular.html sฤ fie injectat.
- Acest cod va fi injectat รฎn eticheta โdivโ, care conศine directiva ng-view. De asemenea, conศinutul pentru descrierea cursului provine din โvariabila tutorialโ care a fฤcut parte din obiectul de aplicare definit รฎn AngularController.
- Cรขnd se face clic pe Node.js Subiecte, va avea loc acelaศi rezultat, iar vizualizarea pentru subiectele Node.js se va manifesta.
- De asemenea, observaศi cฤ pagina URL rฤmรขne la fel, doar ruta de dupฤ eticheta # se schimbฤ. ศi acesta este conceptul aplicaศiilor cu o singurฤ paginฤ. Eticheta #hash din URL este un separator care separฤ ruta (care รฎn cazul nostru este โAngularโ, aศa cum se aratฤ รฎn imaginea de mai sus) ศi pagina HTML principalฤ (Sample.html)
Crearea unei rute implicite รฎn AngularJS
Rutarea รฎn AngularJS oferฤ, de asemenea, posibilitatea de a avea o rutฤ implicitฤ. Aceasta este ruta care este aleasฤ dacฤ nu existฤ nicio potrivire pentru ruta existentฤ.
Ruta implicitฤ este creatฤ prin adฤugarea urmฤtoarei condiศii la definirea serviciului $routeProvider.
Sintaxa de mai jos รฎnseamnฤ pur ศi simplu sฤ redirecศionaศi cฤtre o altฤ paginฤ dacฤ oricare dintre rutele existente nu se potriveศte.
otherwise ({
redirectTo: 'page'
});
Sฤ folosim acelaศi exemplu de mai sus ศi sฤ adฤugฤm o rutฤ implicitฤ la serviciul nostru $routeProvider.
function($routeProvider){
$routeProvider.
when('/Angular',{
templateUrl : 'Angular.html',
controller: 'AngularController'
}).
when("/Node", {
templateUrl: 'Node.html',
controller: 'NodeController'
}).
otherwise({
redirectTo:'/Angular'
});
}]);
Code Explicaลฃie:
- Aici folosim acelaศi cod ca mai sus, singura diferenศฤ este cฤ folosim declaraศia altfel ศi opศiunea โredirectToโ pentru a specifica ce vizualizare ar trebui sฤ fie รฎncฤrcatฤ dacฤ nu este specificatฤ nicio rutฤ. รn cazul nostru, dorim ca vizualizarea โ/Angularโ sฤ fie afiศatฤ.
Dacฤ codul este executat cu succes, urmฤtoarea ieศire va fi afiศatฤ atunci cรขnd rulaศi codul รฎn browser.
ieศire:
Din ieศire,
- Puteศi vedea clar cฤ vizualizarea implicitฤ afiศatฤ este vizualizarea JS unghiularฤ.
- Acest lucru se datoreazฤ faptului cฤ atunci cรขnd pagina se รฎncarcฤ, trece la opศiunea โaltfelโ din funcศia $routeProvider ศi รฎncarcฤ vizualizarea โ/Angularโ.
Cum sฤ accesaศi parametrii de pe ruta AngularJS
Angular oferฤ ศi funcศionalitatea de a furniza parametri รฎn timpul rutฤrii. Parametrii sunt adฤugaศi la sfรขrศitul rutei รฎn URL, De exemplu, http://guru99/index.html#/Angular/1. รn acest exemplu de rutare unghiularฤ,
- , http://guru99/index.html este principala noastrฤ aplicaศie URL
- Simbolul # este separatorul dintre aplicaศia principalฤ URL ศi traseul.
- Angular este traseul nostru
- ศi รฎn cele din urmฤ โ1โ este parametrul care se adaugฤ la traseul nostru
Sintaxa modului รฎn care aratฤ parametrii รฎn URL este prezentat mai jos:
HTMLPage#/route/parameter
Aici veศi observa cฤ parametrul este transmis dupฤ rutฤ รฎn URL.
Deci, รฎn exemplul nostru de rute AngularJS, de mai sus, pentru subiectele Angular JS, putem trece parametri aศa cum se aratฤ mai jos
Sample.html#/Angular/1
Sample.html#/Angular/2
Sample.html#/Angular/3
Aici parametrii 1, 2 ศi 3 pot reprezenta de fapt topicidul.
Sฤ ne uitฤm รฎn detaliu la modul รฎn care putem implementa ruta unghiularฤ cu parametrul:
Pasul 1) Adฤugaศi urmฤtorul cod la vizualizarea dvs
- Adฤugaศi un tabel pentru a afiศa utilizatorului toate subiectele pentru cursul Angular JS
- Adฤugaศi un rรขnd รฎn tabel pentru afiศarea subiectului โControllersโ. Pentru acest rรขnd, schimbaศi eticheta href la โAngular/1โ, ceea ce รฎnseamnฤ cฤ atunci cรขnd utilizatorul dฤ clic pe acest subiect, parametrul 1 va fi transmis รฎn URL odatฤ cu traseul.
- Adฤugaศi un rรขnd รฎn tabel pentru afiศarea subiectului โModeleโ. Pentru acest rรขnd, schimbaศi eticheta href รฎn โAngular/2โ, ceea ce รฎnseamnฤ cฤ atunci cรขnd utilizatorul dฤ clic pe acest subiect, parametrul 2 va fi transmis รฎn URL odatฤ cu traseul.
- Adฤugaศi un rรขnd รฎn tabel pentru afiศarea subiectului โDirectiveโ. Pentru acest rรขnd, schimbaศi eticheta href รฎn โAngular/3โ, ceea ce รฎnseamnฤ cฤ atunci cรขnd utilizatorul dฤ clic pe acest subiect, parametrul 3 va fi transmis รฎn URL odatฤ cu traseul.
Pasul 2) Adฤugaศi id-ul subiectului รฎn funcศia de serviciu Routeprovider
รn funcศia de serviciu routeprovider, adฤugaศi:topicId pentru a indica faptul cฤ orice parametru transmis รฎn URL dupฤ ce ruta ar trebui atribuitฤ variabilei topicId.
Pasul 3) Adฤugaศi codul necesar controlerului
- Asiguraศi-vฤ cฤ adฤugaศi mai รฎntรขi โ$routeParamsโ ca parametru atunci cรขnd definiศi funcศia controlerului. Acest parametru va avea acces la toศi parametrii de rutฤ transmiศi รฎn URL.
- Parametrul โrouteParamsโ are o referinศฤ la obiectul topicId, care este transmis ca parametru de rutฤ. Aici ataศฤm variabila โ$routeParams.topicIdโ la obiectul nostru ca variabilฤ โ$scope.tutotialidโ. Acest lucru se face astfel รฎncรขt sฤ poatฤ fi referit รฎn viziunea noastrฤ prin variabila tutorialid.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body ng-app="sampleApp">
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="lib/bootstrap.js"></script>
<script src="lib/bootstrap.css"></script>
<h1> Guru99 Global Event</h1>
<table class="table table-striped">
<thead>
<tr> <th>#</th><th>Angular JS topic</th><th>Description</th><th></th> </tr> </thead>
<tbody>
<tr>
<td>l</td><td>l</td><td>Controllers</td>
<td><a href="#Angular/l">Topic details</a></td>
</tr>
<tr>
<td>2</td><td>2</td><td>Models</td>
<td><a href="#Angular/2">Topic details</a></td>
</tr>
<tr>
<td>3</td><td>3</td><td>Directives</td>
<td><a href="#Angular/3">Topic details</a></td>
</tr>
</tbody>
</table>
<script>
var sampleApp = angular.module('sampleApp',['ngRoute']);
sampleApp.config(
function($routeProvider){
$routeProvider.
when('/Angular/:topicId',{
templateUrl : 'Angular.html',
controller: 'AngularController'
})
});
sampleApp.controller('AngularController',function($scope,$routeParams) {
$scope.tutorialid=$routeParams.topicId
});
</script>
</body>
</html>
Pasul 4) Adฤugaศi expresia la variabila afiศatฤ
Adฤugaศi expresia pentru a afiศa variabila tutorialid รฎn pagina Angular.html.
<h2>Anguler</h2>
<br><br>{{tutorialid}}
Dacฤ codul este executat cu succes, urmฤtoarea ieศire va fi afiศatฤ atunci cรขnd rulaศi codul รฎn browser.
ieศire:
รn ecranul de ieศire,
- Dacฤ faceศi clic pe linkul Detalii subiect pentru primul subiect, numฤrul 1 este adฤugat la URL.
- Acest numฤr va fi apoi luat ca argument โrouteparamโ de cฤtre serviciul furnizor de rute Angular.JS ศi poate fi apoi accesat de controlerul nostru.
Cum sฤ utilizaศi serviciul Angular $route
Serviciul $route vฤ permite sฤ accesaศi proprietฤศile rutei. Serviciul $route este disponibil ca parametru atunci cรขnd funcศia este definitฤ รฎn controler. Sintaxa generalฤ a modului รฎn care parametrul $route este disponibil de la controler este prezentatฤ mai jos;
myApp.controller('MyController',function($scope,$route)
- myApp este modulul angular.JS definit pentru aplicaศiile dvs
- MyController este numele controlerului definit pentru aplicaศia dvs
- La fel cum variabila $scope este disponibilฤ pentru aplicaศia dvs., care este folositฤ pentru a transmite informaศii de la controler la vizualizare. Parametrul $route este folosit pentru a accesa proprietฤศile rutei.
Sฤ vedem cum putem folosi serviciul $route.
รn acest exemplu,
- Vom crea o variabilฤ personalizatฤ simplฤ numitฤ โtextul meuโ, care va conศine ศirul โAcesta este unghiularโ.
- Vom ataศa aceastฤ variabilฤ la traseul nostru. ศi mai tรขrziu vom accesa acest ศir de la controlerul nostru folosind serviciul $route ศi apoi vom folosi obiectul scope pentru a afiศa asta รฎn viziunea noastrฤ.
Deci, haideศi sฤ vedem paศii pe care trebuie sฤ-i facem pentru a realiza acest lucru.
Pas 1) Adฤugaศi o pereche cheie-valoare personalizatฤ la traseu. Aici, adฤugฤm o cheie numitฤ โtextul meuโ ศi รฎi atribuim o valoare โAcesta este unghiularโ.
Pas 2) Adฤugaศi codul relevant la controler
- Adฤugaศi parametrul $route la funcศia de controler. Parametrul $route este un parametru cheie definit รฎn unghi, care permite accesul la proprietฤศile rutei.
- Variabila โmytextโ care a fost definitฤ รฎn rutฤ poate fi accesatฤ prin referinศa $route.current. Aceasta este apoi atribuitฤ variabilei โtextโ a obiectului scope. Variabila text poate fi apoi accesatฤ din vizualizare รฎn mod corespunzฤtor.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body ng-app="sampleApp">
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="lib/bootstrap.js"></script>
<script src="lib/bootstrap.css"></script>
<h1> Guru99 Global Event</h1>
<table class="table table-striped">
<thead>
<tr> <th>#</th><th>Angular JS topic</th><th>Description</th><th></th> </tr> </thead>
<tbody>
<tr>
<td>l</td><td>l</td><td>Controllers</td>
<td><a href="#Angular/l">Topic details</a></td>
</tr>
<tr>
<td>2</td><td>2</td><td>Models</td>
<td><a href="#Angular/2">Topic details</a></td>
</tr>
<tr>
<td>3</td><td>3</td><td>Directives</td>
<td><a href="#Angular/3">Topic details</a></td>
</tr>
</tbody>
</table>
<script>
var sampleApp = angular.module('sampleApp',['ngRoute']);
sampleApp.config(['$routeProvider',
function($routeProvider){
$routeProvider.
when('/Angular/:topicId',{
mytext:"This is angular",
templateUrl : 'Angular.html',
controller: 'AngularController'
})
}]);
sampleApp.controller('AngularController',function($scope,$routeParams,$route) {
$scope.tutorialid=$routeParams.topicId;
$scope.text=$route.current.mytext;
});
</script>
</body>
</html>
Pas 3) Adฤugaศi o referinศฤ la variabila text din obiectul scop ca expresie. Acesta va fi adฤugat la pagina noastrฤ Angular.html, aศa cum se aratฤ mai jos.
Acest lucru va face ca textul โAcesta este unghiularโ sฤ fie injectat รฎn vizualizare. Expresia {{tutorialid}} este aceeaศi cu cea vฤzutฤ รฎn subiectul anterior ศi aceasta va afiศa numฤrul โ1โ.
<h2>Anguler</h2>
<br><br>{{text}}
<br><br>
Dacฤ codul este executat cu succes, urmฤtoarea ieศire va fi afiศatฤ atunci cรขnd rulaศi codul รฎn browser.
ieศire:
Din ieศire,
- Putem vedea cฤ textul โAcesta este unghiularโ este afiศat ศi atunci cรขnd facem clic pe oricare dintre linkurile din tabel. ID-ul subiectului este, de asemenea, afiศat รฎn acelaศi timp cu textul.
Se activeazฤ rutarea HTML5
Rutarea HTML5 este utilizatฤ practic pentru a crea informaศii curate URLรnseamnฤ eliminarea hashtag-ului din URLDeci rutarea URLs, atunci cรขnd se utilizeazฤ rutarea HTML5, ar apฤrea aศa cum se aratฤ mai jos
Sample.html/Angular/1
Sample.html/Angular/2
Sample.html/Angular/3
Acest concept este cunoscut รฎn mod normal ca prezentarea unor aspecte frumoase URL cฤtre utilizator.
Existฤ 2 paศi principali care trebuie efectuati pentru rutarea HTML5.
- Se configureazฤ $locationProvider
- Stabilirea bazei noastre pentru link-uri relative
Sฤ analizฤm รฎn detaliu cum sฤ efectuaศi paศii menศionaศi mai sus รฎn exemplul nostru de mai sus
Pas 1) Adฤugaศi codul relevant la modulul unghiular
- Adฤugaศi o bazฤURL constantฤ pentru aplicaศie โ Acest lucru este necesar pentru rutarea HTML5, astfel รฎncรขt aplicaศia sฤ ศtie care este locaศia de bazฤ a aplicaศiei.
- Adฤugaศi serviciile $locationProvider. Acest serviciu vฤ permite sฤ definiศi html5Mode.
- Setaศi html5Mode al serviciului $locationProvider la true.
Pas 2) Eliminaศi toate etichetele # pentru linkuri (โAngular/1โ, โAngular/2โ, โAngular/3โ) pentru a crea linkuri uศor de citit. URL.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body ng-app="sampleApp">
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="lib/bootstrap.js"></script>
<script src="lib/bootstrap.css"></script>
<h1> Guru99 Global Event</h1>
<table class="table table-striped">
<thead>
<tr> <th>#</th><th>Angular JS topic</th><th>Description</th><th></th> </tr> </thead>
<tbody>
<tr>
<td>l</td><td>l</td><td>Controllers</td>
<td><a href="Angular/l">Topic details</a></td>
</tr>
<tr>
<td>2</td><td>2</td><td>Models</td>
<td><a href="Angular/2">Topic details</a></td>
</tr>
<tr>
<td>3</td><td>3</td><td>Directives</td>
<td><a href="Angular/3">Topic details</a></td>
</tr>
</tbody>
</table>
<script>
var sampleApp = angular.module('sampleApp',['ngRoute']);
sampleApp.constant("baseUrl","http://localhost:63342/untitled/Sample.html/Angular");
sampleApp.config(
function($routeProvider,$locationProvider){
$routeProvider.
when('/Angular/:topicId',{
templateUrl : 'Angular.html',
controller: 'AngularController'
})
});
sampleApp.controller('AngularController',function($scope,$routeParams,$route) {
$scope.tutorialid=$routeParams.topicId
});
</script>
</body>
</html>
Dacฤ codul este executat cu succes, urmฤtoarea ieศire va fi afiศatฤ atunci cรขnd rulaศi codul รฎn browser.
ieศire:
Din ieศire,
- Puteศi vedea cฤ eticheta # nu este acolo cรขnd accesaศi aplicaศia.
Rezumat
- Rutarea este utilizatฤ pentru a prezenta diferite vizualizฤri utilizatorului pe aceeaศi paginฤ web. Acesta este, practic, conceptul folosit รฎn aplicaศiile cu o singurฤ paginฤ, care sunt implementate pentru aproape toate aplicaศiile web moderne
- O rutฤ implicitฤ poate fi configuratฤ pentru rutarea angular.JS. Este folosit pentru a determina care va fi vizualizarea implicitฤ care va fi afiศatฤ utilizatorului
- Parametrii pot fi transmiศi rutei prin intermediul URL ca parametri de rutฤ. Aceศti parametri sunt accesaศi ulterior utilizรขnd parametrul $routeParams din controler
- Serviciul $route poate fi folosit pentru a defini perechi cheie-valoare personalizate รฎn traseu, care pot fi apoi accesate din interiorul vizualizฤrii
- Rutarea HTML5 este utilizatฤ pentru a elimina #tag-ul din rutare. URL รฎn unghiular pentru a forma destul de URL
























