AngularJS ng-vy med exempel: Hur man implementerar vy
Numera har alla sรคkert hรถrt talas om "Single Page Applications". Mรฅnga av de vรคlkรคnda webbplatserna som Gmail anvรคnd konceptet med enkelsidiga applikationer (SPA).
SPA's รคr konceptet dรคr nรคr en anvรคndare begรคr en annan sida, kommer applikationen inte att navigera till den sidan utan istรคllet visa vyn av den nya sidan pรฅ den befintliga sidan sjรคlv.
Det ger anvรคndaren en kรคnsla av att han aldrig lรคmnade sidan i fรถrsta hand. Detsamma kan uppnรฅs i Angular med hjรคlp av Views i samband med Routes.
I den hรคr handledningen kommer du att lรคra dig-
Vad รคr en vy?
En vy รคr det innehรฅll som visas fรถr anvรคndaren. I grund och botten vad anvรคndaren vill se, fรถljaktligen kommer den vyn av applikationen att visas fรถr anvรคndaren.
Kombinationen av vyer och rutter hjรคlper en att dela upp en applikation i logiska vyer och binda olika vyer till Controllers.
Att dela upp programmet i olika vyer och anvรคnda Routing fรถr att ladda olika delar av programmet hjรคlper till att logiskt dela upp programmet och gรถra det mer hanterbart.
Lรฅt oss anta att vi har en bestรคllningsapplikation, dรคr en kund kan se bestรคllningar och lรคgga nya.
Diagrammet nedan och efterfรถljande fรถrklaring visar hur man gรถr denna ansรถkan som en ensidig applikation.
Nu, istรคllet fรถr att ha tvรฅ olika webbsidor, en fรถr "Visa bestรคllningar" och en annan fรถr "Nya bestรคllningar", in AngularJS, skulle du istรคllet skapa tvรฅ olika vyer som heter "Visa bestรคllningar" och "Nya bestรคllningar" pรฅ samma sida.
Vi kommer ocksรฅ att ha 2 referenslรคnkar i vรฅr applikation som heter #show och #new.
- Sรฅ nรคr applikationen gรฅr till MyApp/#show kommer den att visa vyn av View Orders, samtidigt som den inte lรคmnar sidan. Det kommer bara att uppdatera avsnittet pรฅ den befintliga sidan med informationen om "Visa bestรคllningar". Detsamma gรคller fรถr vyn "Nya bestรคllningar".
Sรฅ pรฅ detta sรคtt blir det bara enklare att dela upp applikationen i olika vyer fรถr att gรถra det mer hanterbart och enkelt att gรถra รคndringar nรคrhelst det behรถvs.
Och varje vy kommer att ha en motsvarande styrenhet fรถr att styra affรคrslogiken fรถr den funktionaliteten.
ng-view-direktivet i AngularJS
"ngView" รคr ett direktiv som kompletterar $route-tjรคnsten genom att inkludera den renderade mallen fรถr den aktuella rutten i huvudlayoutfilen (index.html).
Varje gรฅng den aktuella rutten รคndras, inkluderade vyn รคndringar av den enligt konfigurationen av $route-tjรคnsten utan att รคndra sjรคlva sidan.
Vi kommer att tรคcka rutter i ett senare kapitel, fรถr nu, kommer vi att fokusera pรฅ att lรคgga till flera vyer till vรฅr applikation.
Nedan finns hela flรถdesschemat รถver hur hela processen fungerar. Vi kommer att gรฅ igenom i detalj fรถr varje process i vรฅrt exempel som visas nedan.
Hur man implementerar ng-view i AngularJS
Lรฅt oss ta en titt pรฅ ett exempel pรฅ hur vi kan implementera ng-view i AngularJS. I vรฅrt exempel kommer vi att presentera tvรฅ alternativ fรถr anvรคndaren,
- Den ena รคr att visa en "Event" och den andra รคr att lรคgga till en "Event".
- Nรคr anvรคndaren klickar pรฅ lรคnken Lรคgg till en hรคndelse visas vyn fรถr "Lรคgg till hรคndelse" och detsamma gรคller fรถr "Visa hรคndelse."
Fรถlj stegen nedan fรถr att fรฅ detta exempel pรฅ plats.
Steg 1) Inkludera angular-route-filen som en skriptreferens.
Denna ruttfil รคr nรถdvรคndig fรถr att kunna anvรคnda funktionerna i att ha flera rutter och vyer. Den hรคr filen kan laddas ner frรฅn webbplatsen angularJS.
Steg 2) Lรคgg till href-taggar och div-taggar.
I detta steg
- Lรคgg till href-taggar som representerar lรคnkar till "Lรคgga till en ny hรคndelse" och "Visa en hรคndelse".
- Lรคgg ocksรฅ till en div-tagg med ng-view-direktivet som kommer att representera vyn. Detta gรถr att motsvarande vy kan injiceras nรคr anvรคndaren klickar pรฅ antingen "Lรคgg till ny hรคndelse-lรคnk" eller "Visa hรคndelselรคnk."
Steg 3) Lรคgg till fรถljande kod i din skripttagg fรถr Angular JS.
Lรฅt oss inte oroa oss fรถr routing, fรถr nu kommer vi att se detta i ett senare kapitel. Lรฅt oss bara se koden fรถr vyerna fรถr nu.
- Detta avsnitt av kod betyder att nรคr anvรคndaren klickar pรฅ href-taggen "NewEvent" som definierades i div-taggen tidigare. Den kommer att gรฅ till webbsidan add_event.html, och tar koden dรคrifrรฅn och injicerar den i vyn. Fรถr det andra fรถr att bearbeta affรคrslogiken fรถr denna vy, gรฅ till "AddEventController".
- Detta avsnitt av kod betyder att nรคr anvรคndaren klickar pรฅ href-taggen "DisplayEvent" som definierades i div-taggen tidigare. Den kommer att gรฅ till webbsidan show_event.html, ta koden dรคrifrรฅn och injicera den i vyn. Fรถr det andra, fรถr att bearbeta affรคrslogiken fรถr denna vy, gรฅ till "ShowDisplayController".
- Detta kodavsnitt betyder att standardvyn som visas fรถr anvรคndaren รคr DisplayEvent-vyn
Steg 4) Lรคgg till kontroller fรถr att bearbeta affรคrslogiken.
Nรคsta รคr att lรคgga till kontroller fรถr att bearbeta affรคrslogiken fรถr bรฅde "DisplayEvent" och "Add New Event" funktionalitet.
Vi lรคgger helt enkelt till en meddelandevariabel till varje scope-objekt fรถr varje styrenhet. Detta meddelande kommer att visas nรคr lรคmplig vy visas fรถr anvรคndaren.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
<script src="https://code.angularjs.org/1.5.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.5.9/angular.min.js"></script>
<script src="lib/bootstrap.js"></script>
</head>
<body ng-app="sampleApp">
<h1> Guru99 Global Event</h1>
<div class="container">
<ul><li><a href="#!NewEvent"> Add New Event</a></li>
<li><a href="#!DisplayEvent"> Display Event</a></li>
</ul>
<div ng-view></div>
</div>
<script>
var app = angular.module('sampleApp',["ngRoute"]);
app.config(function($routeProvider){
$routeProvider.
when("/NewEvent",{
templateUrl : "add_event.html",
controller: "AddEventController"
}).
when("/DisplayEvent", {
templateUrl: "show_event.html",
controller: "ShowDisplayController"
}).
otherwise ({
redirectTo: '/DisplayEvent'
});
});
app.controller("AddEventController", function($scope) {
$scope.message = "This is to Add a new Event";
});
app.controller("ShowDisplayController",function($scope){
$scope.message = "This is display an Event";
});
</script>
</body>
</html>
Steg 5) Skapa sidor som heter add_event.html och show_event.html
Skapa sedan sidor som heter add_event.html och show_event.html. Hรฅll sidorna enkla, som visas nedan.
I vรฅrt fall kommer sidan add_event.html att ha en rubriktagg tillsammans med texten "Lรคgg till ny hรคndelse" och har ett uttryck fรถr att visa meddelandet "Detta รคr att lรคgga till en ny hรคndelse".
Pรฅ samma sรคtt kommer sidan show_event.html ocksรฅ att ha en rubriktagg fรถr att hรฅlla texten "Visa hรคndelse" och รคven ha ett meddelandeuttryck fรถr att visa meddelandet "Detta รคr fรถr att visa en hรคndelse."
Vรคrdet pรฅ meddelandevariabeln kommer att injiceras baserat pรฅ styrenheten som รคr kopplad till vyn.
Fรถr varje sida kommer vi att lรคgga till meddelandevariabeln, som kommer att injiceras frรฅn respektive styrenhet.
- add_event.html
<h2>Add New Event</h2>
{{message}}
- show_event.html
<h2>Show Event</h2>
{{message}}
Om koden exekveras framgรฅngsrikt kommer fรถljande utdata att visas nรคr du kรถr din kod i webblรคsaren.
Produktion:
Frรฅn utgรฅngen kan vi mรคrka 2 saker
- Adressfรคltet kommer att spegla vad som รคr den aktuella vyn som visas. Sรฅ eftersom standardvyn รคr att visa skรคrmen Show Event visar adressfรคltet adressen fรถr "DisplayEvent".
- Det hรคr avsnittet รคr vyn, som skapas i farten. Eftersom standardvyn รคr Show Event one, รคr detta vad som visas fรถr anvรคndaren.
Klicka nu pรฅ lรคnken Lรคgg till ny hรคndelse pรฅ sidan som visas. Du kommer nu att fรฅ utdata nedan.
Produktion:
- Adressfรคltet kommer nu att reflektera att den aktuella vyn nu รคr vyn "Lรคgg till ny hรคndelse". Observera att du fortfarande kommer att vara pรฅ samma ansรถkningssida. Du kommer inte att dirigeras till en ny ansรถkningssida.
- Det hรคr avsnittet รคr vyn, och det kommer nu att รคndras fรถr att visa html fรถr funktionen "Lรคgg till ny hรคndelse". Sรฅ nu i det hรคr avsnittet visas rubriktaggen "Lรคgg till ny hรคndelse" och texten "Detta รคr att lรคgga till en ny hรคndelse" fรถr anvรคndaren.










