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ฤƒ.

  1. 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.
  2. 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']);
  1. 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)
  1. 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/>
  1. รŽ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.

Rutare AngularJS

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โ€.

Rutare AngularJS

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โ€.

Rutare AngularJS

Pas 4) รŽn eticheta de script pentru AngularJS, adฤƒugaศ›i โ€žmodulul ngRouteโ€ ศ™i serviciul โ€ž$routeProviderโ€.

Rutare AngularJS

Code Explicaลฃie:

  1. 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.
  2. $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.
  3. 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.
  4. 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.

Rutare AngularJS

<!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ฤƒ.

  1. Folosind directiva ng-repeat pentru a parcurge fiecare pereche cheie-valoare definitฤƒ รฎn variabila tutorial.
  2. Se afiศ™eazฤƒ numele ศ™i descrierea fiecฤƒrei perechi cheie-valoare.
  • Angular.html

Rutare AngularJS

<h2>Anguler</h2>
<ul ng-repeat="ptutor in tutorial">
    <li>Course : {{ptutor.Name}} - {{ptutor.Description}}</li>
</ul>
  • Node.html

Rutare AngularJS

<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:

Rutare AngularJS

Dacฤƒ faceศ›i clic pe linkul AngularJS Topics, rezultatul de mai jos va fi afiศ™at.

Rutare AngularJS

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)

Rutare AngularJS

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.

Crearea unei rute implicite รฎn AngularJS

function($routeProvider){
$routeProvider.

when('/Angular',{
templateUrl : 'Angular.html',
controller: 'AngularController'
}).

when("/Node", {
templateUrl: 'Node.html',
controller: 'NodeController'
}).
otherwise({
    redirectTo:'/Angular'
});
}]);

Code Explicaลฃie:

  1. 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:

Crearea unei rute implicite รฎn AngularJS

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ฤƒ,

  1. , http://guru99/index.html este principala noastrฤƒ aplicaศ›ie URL
  2. Simbolul # este separatorul dintre aplicaศ›ia principalฤƒ URL ศ™i traseul.
  3. Angular este traseul nostru
  4. ศ˜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

  1. Adฤƒugaศ›i un tabel pentru a afiศ™a utilizatorului toate subiectele pentru cursul Angular JS
  2. 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.
  3. 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.
  4. 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.

Accesaศ›i parametrii de pe ruta AngularJS

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.

Accesaศ›i parametrii de pe ruta AngularJS

Pasul 3) Adฤƒugaศ›i codul necesar controlerului

  1. 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.
  2. 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.

Accesaศ›i parametrii de pe ruta AngularJS

<!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.

Accesaศ›i parametrii de pe ruta AngularJS

<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:

Accesaศ›i parametrii de pe ruta AngularJS

รŽ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)
  1. myApp este modulul angular.JS definit pentru aplicaศ›iile dvs
  2. MyController este numele controlerului definit pentru aplicaศ›ia dvs
  3. 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โ€.

Serviciul Angular $route

Pas 2) Adฤƒugaศ›i codul relevant la controler

  1. 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.
  2. 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.

Serviciul Angular $route

<!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โ€.

Serviciul Angular $route

<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:

Serviciul Angular $route

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.

  1. Se configureazฤƒ $locationProvider
  2. 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

  1. 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.
  2. Adฤƒugaศ›i serviciile $locationProvider. Acest serviciu vฤƒ permite sฤƒ definiศ›i html5Mode.
  3. Setaศ›i html5Mode al serviciului $locationProvider la true.

Se activeazฤƒ rutarea HTML5

Pas 2) Eliminaศ›i toate etichetele # pentru linkuri (โ€žAngular/1โ€, โ€žAngular/2โ€, โ€žAngular/3โ€) pentru a crea linkuri uศ™or de citit. URL.

Se activeazฤƒ rutarea HTML5

<!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:

Se activeazฤƒ rutarea HTML5

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

Rezumaศ›i aceastฤƒ postare cu: