AngularJS ng-view mit Beispiel: So implementieren Sie View

Heutzutage hat wohl jeder schon einmal von โ€žSingle Page Applicationsโ€œ gehรถrt. Viele bekannte Websites wie zum Beispiel Gmail Nutzen Sie das Konzept der Single Page Applications (SPAs).

Bei SPAs handelt es sich um das Konzept, bei dem die Anwendung nicht zu dieser Seite navigiert, wenn ein Benutzer eine andere Seite anfordert, sondern stattdessen die Ansicht der neuen Seite innerhalb der vorhandenen Seite selbst anzeigt.

Es gibt dem Benutzer das Gefรผhl, dass er die Seite รผberhaupt nicht verlassen hat. Das Gleiche kann im Angular mit Hilfe von Views in Verbindung mit Routes erreicht werden.

In diesem Tutorial lernen Sie-

Was ist eine Ansicht?

Eine Ansicht ist der Inhalt, der dem Benutzer angezeigt wird. Grundsรคtzlich das, was der Benutzer sehen mรถchte, dementsprechend wird ihm diese Ansicht der Anwendung angezeigt.

Die Kombination von Ansichten und Routen hilft dabei, eine Anwendung in logische Ansichten zu unterteilen und verschiedene Ansichten an Controller zu binden.

Die Aufteilung der Anwendung in verschiedene Ansichten und die Verwendung von Routing zum Laden verschiedener Teile der Anwendung tragen dazu bei, die Anwendung logisch aufzuteilen und sie besser verwaltbar zu machen.

Nehmen wir an, wir haben eine Bestellanwendung, in der ein Kunde Bestellungen einsehen und neue aufgeben kann.

Das folgende Diagramm und die anschlieรŸende Erklรคrung zeigen, wie diese Anwendung als einseitige Anwendung erstellt wird.

Was ist eine Ansicht?

Anstatt jetzt zwei verschiedene Webseiten zu haben, eine fรผr โ€žBestellungen anzeigenโ€œ und eine fรผr โ€žNeue Bestellungenโ€œ, in AngularJS, wรผrden Sie stattdessen zwei verschiedene Ansichten namens โ€žBestellungen anzeigenโ€œ und โ€žNeue Bestellungenโ€œ auf derselben Seite erstellen.

Wir werden in unserer Anwendung auch zwei Referenzlinks mit den Namen #show und #new haben.

  • Wenn die Anwendung also zu MyApp/#show wechselt, wird die Ansicht โ€žBestellungen anzeigenโ€œ angezeigt, gleichzeitig wird die Seite nicht verlassen. Es wird lediglich der Abschnitt der vorhandenen Seite mit der Information โ€žBestellungen anzeigenโ€œ aktualisiert. Das Gleiche gilt fรผr die Ansicht โ€žNeue Bestellungenโ€œ.

Auf diese Weise wird es einfacher, die Anwendung in verschiedene Ansichten zu unterteilen, um sie einfacher zu verwalten und bei Bedarf ร„nderungen vorzunehmen.

Und jede Ansicht verfรผgt รผber einen entsprechenden Controller zur Steuerung der Geschรคftslogik fรผr diese Funktionalitรคt.

ng-view-Direktive in AngularJS

โ€žngViewโ€œ ist eine Direktive, die den $route-Dienst ergรคnzt, indem sie die gerenderte Vorlage der aktuellen Route in die Hauptlayoutdatei (index.html) einfรผgt.

Jedes Mal, wenn sich die aktuelle Route รคndert, enthรคlt die Ansicht ร„nderungen entsprechend der Konfiguration des $route-Dienstes, ohne dass die Seite selbst geรคndert wird.

Wir werden abdecken Routen In einem spรคteren Kapitel konzentrieren wir uns zunรคchst auf das Hinzufรผgen mehrerer Ansichten zu unserer Anwendung.

Nachfolgend finden Sie das gesamte Flussdiagramm zur Funktionsweise des gesamten Prozesses. Wir werden jeden Prozess in unserem unten gezeigten Beispiel im Detail durchgehen.

ng-view-Direktive in AngularJS

So implementieren Sie ng-view in AngularJS

Schauen wir uns ein Beispiel an, wie wir ng-view in AngularJS implementieren kรถnnen. In unserem Beispiel werden wir dem Benutzer zwei Optionen prรคsentieren:

  • Die eine besteht darin, ein โ€žEreignisโ€œ anzuzeigen, die andere darin, ein โ€žEreignisโ€œ hinzuzufรผgen.
  • Wenn der Benutzer auf den Link โ€žEreignis hinzufรผgenโ€œ klickt, wird ihm die Ansicht โ€žEreignis hinzufรผgenโ€œ angezeigt, und das Gleiche gilt fรผr โ€žEreignis anzeigenโ€œ.

Bitte befolgen Sie die folgenden Schritte, um dieses Beispiel umzusetzen.

Schritt 1) Fรผgen Sie die Angular-Route-Datei als Skriptreferenz ein.

Diese Routendatei ist erforderlich, um die Funktionalitรคt mehrerer Routen und Ansichten nutzen zu kรถnnen. Diese Datei kann von der AngularJS-Website heruntergeladen werden.

Implementieren Sie ng-view in AngularJS

Schritt 2) Fรผgen Sie href-Tags und div-Tags hinzu.

In diesem Schritt

  1. Fรผgen Sie href-Tags hinzu, die Links zu โ€žHinzufรผgen eines neuen Ereignissesโ€œ und โ€žAnzeigen eines Ereignissesโ€œ darstellen.
  2. Fรผgen Sie auรŸerdem ein div-Tag mit der ng-view-Direktive hinzu, das die Ansicht darstellt. Dadurch kann die entsprechende Ansicht immer dann eingefรผgt werden, wenn der Benutzer entweder auf den Link โ€žNeues Ereignis hinzufรผgenโ€œ oder den Link โ€žEreignis anzeigenโ€œ klickt.

Implementieren Sie ng-view in AngularJS

Schritt 3) Fรผgen Sie in Ihrem Skripttag fรผr Angular JS den folgenden Code hinzu.

Machen wir uns vorerst keine Gedanken รผber das Routing, das werden wir in einem spรคteren Kapitel sehen. Sehen wir uns vorerst nur den Code fรผr die Ansichten an.

  1. Dieser Codeabschnitt bedeutet, dass der Benutzer auf das href-Tag โ€žNewEventโ€œ klickt, das zuvor im div-Tag definiert wurde. Es geht zur Webseite add_event.html, รผbernimmt den Code von dort und fรผgt ihn in die Ansicht ein. Zweitens gehen Sie zum Verarbeiten der Geschรคftslogik fรผr diese Ansicht zu โ€žAddEventControllerโ€œ.
  2. Dieser Codeabschnitt bedeutet, dass der Benutzer auf das href-Tag โ€žDisplayEventโ€œ klickt, das zuvor im div-Tag definiert wurde. Es geht zur Webseite show_event.html, nimmt den Code von dort und fรผgt ihn in die Ansicht ein. Zweitens gehen Sie zum Verarbeiten der Geschรคftslogik fรผr diese Ansicht zum โ€žShowDisplayControllerโ€œ.
  3. Dieser Codeabschnitt bedeutet, dass die Standardansicht, die dem Benutzer angezeigt wird, die DisplayEvent-Ansicht ist

    Implementieren Sie ng-view in AngularJS

Schritt 4) Fรผgen Sie Controller hinzu, um die Geschรคftslogik zu verarbeiten.

Als nรคchstes mรผssen Controller hinzugefรผgt werden, um die Geschรคftslogik sowohl fรผr die โ€žDisplayEventโ€œ- als auch fรผr die โ€žAdd New Eventโ€œ-Funktionalitรคt zu verarbeiten.

Wir fรผgen einfach jedem Bereichsobjekt fรผr jeden Controller eine Nachrichtenvariable hinzu. Diese Nachricht wird angezeigt, wenn dem Benutzer die entsprechende Ansicht angezeigt wird.

Implementieren Sie ng-view in AngularJS

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

Schritt 5) Erstellen Sie Seiten mit den Namen add_event.html und show_event.html

Als nรคchstes erstellen Sie Seiten mit den Namen add_event.html und show_event.html. Halten Sie die Seiten einfach, wie unten gezeigt.

In unserem Fall verfรผgt die Seite add_event.html รผber ein Header-Tag mit dem Text โ€žNeues Ereignis hinzufรผgenโ€œ und einen Ausdruck zum Anzeigen der Meldung โ€žHiermit wird ein neues Ereignis hinzugefรผgtโ€œ.

Ebenso verfรผgt die Seite show_event.html รผber ein Header-Tag fรผr den Text โ€žShow Eventโ€œ und einen Nachrichtenausdruck fรผr die Anzeige der Nachricht โ€žThis is to display an Eventโ€œ.

Der Wert der Nachrichtenvariablen wird basierend auf dem Controller eingefรผgt, der der Ansicht zugeordnet ist.

Fรผr jede Seite werden wir die Nachrichtenvariable hinzufรผgen, die von jedem jeweiligen Controller eingefรผgt wird.

  • add_event.html

Implementieren Sie ng-view in AngularJS

<h2>Add New Event</h2>

{{message}}
  • show_event.html

Implementieren Sie ng-view in AngularJS

<h2>Show Event</h2>
	
{{message}}

Wenn der Code erfolgreich ausgefรผhrt wird, wird die folgende Ausgabe angezeigt, wenn Sie Ihren Code im Browser ausfรผhren.

Ausgang:

Implementieren Sie ng-view in AngularJS

Aus der Ausgabe kรถnnen wir zwei Dinge erkennen

  1. Die Adressleiste gibt die aktuell angezeigte Ansicht wieder. Da die Standardansicht den Bildschirm โ€žEreignis anzeigenโ€œ anzeigt, wird in der Adressleiste die Adresse fรผr โ€žDisplayEventโ€œ angezeigt.
  2. Dieser Abschnitt ist die Ansicht, die im laufenden Betrieb erstellt wird. Da die Standardansicht โ€žEreignis anzeigenโ€œ ist, wird dem Benutzer diese Ansicht angezeigt.

Klicken Sie nun auf der angezeigten Seite auf den Link Neues Ereignis hinzufรผgen. Sie erhalten nun die folgende Ausgabe.

Implementieren Sie ng-view in AngularJS

Ausgang:

  1. In der Adressleiste wird nun angezeigt, dass die aktuelle Ansicht nun die Ansicht โ€žNeues Ereignis hinzufรผgenโ€œ ist. Beachten Sie, dass Sie sich immer noch auf derselben Bewerbungsseite befinden. Sie werden nicht auf eine neue Bewerbungsseite weitergeleitet.
  2. Dieser Abschnitt ist die Ansicht und wird nun geรคndert, um die anzuzeigen HTML fรผr die Funktion โ€žNeues Ereignis hinzufรผgenโ€œ. In diesem Abschnitt wird dem Benutzer jetzt der Header-Tag โ€žNeues Ereignis hinzufรผgenโ€œ und der Text โ€žHiermit wird ein neues Ereignis hinzugefรผgtโ€œ angezeigt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: