AngularJS - Ansichten: Ein Anfängerguide

Hallo da drüben, zukünftige Programmierer! Heute tauchen wir in die aufregende Welt der AngularJS-Ansichten ein. Machen Sie sich keine Sorgen, wenn Sie vorher noch nie eine Zeile Code geschrieben haben - ich werde Ihr freundlicher Guide auf dieser Reise sein, genau wie ich es für unzählige Schüler in den letzten Jahren getan habe. Also holen Sie sich eine Tasse Kaffee (oder Tee, wenn das mehr Ihr Ding ist) und los geht's!

AngularJS - Views

Was sind Ansichten in AngularJS?

Bevor wir ins Detail gehen, lassen Sie uns verstehen, was Ansichten in AngularJS sind. Stellen Sie sich Ansichten als die "Gesichtszüge" Ihrer Anwendung vor - sie sind das, was der Benutzer sieht und mit dem er interagiert. In AngularJS sind Ansichten im Wesentlichen HTML-Vorlagen, die Daten anzeigen und auf Benutzeraktionen reagieren.

Nun, lassen Sie uns die Werkzeuge erkunden, die AngularJS uns zur Verfügung stellt, um mit Ansichten zu arbeiten.

Die ng-view Direktive: Ihr Fenster zu dynamischen Inhalten

Was ist ng-view?

Die ng-view Direktive ist wie ein spezielles Fenster in Ihrer AngularJS-Anwendung. Es ist der Ort, an dem Ihre Anwendung verschiedene Inhalte basierend auf der aktuellen Route (oder URL) anzeigt, ohne dass die gesamte Seite neu geladen werden muss. Cool, oder?

Wie man ng-view verwendet

Die Verwendung von ng-view ist so einfach wie das Hinzufügen zu einem Element in Ihrem HTML. Hier ist ein Beispiel:

<div ng-view></div>

Das ist alles! Diese Division wird nun als Behälter dienen, in dem AngularJS verschiedene Ansichten basierend auf der aktuellen Route lädt.

Ein realweltliches Beispiel

Nehmen wir an, wir bauen eine einfache Website für einen Buchladen. Unsere Hauptseite könnte so aussehen:

<!DOCTYPE html>
<html ng-app="bookstoreApp">
<head>
<title>Mein cooler Buchladen</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular-route.js"></script>
</head>
<body>
<h1>Willkommen in meinem coolen Buchladen</h1>
<div ng-view></div>
<script src="app.js"></script>
</body>
</html>

In diesem Beispiel wird das <div ng-view></div> der Ort sein, an dem verschiedene Seiten unseres Buchladens (wie die Buchliste, yksame Buchdetails usw.) angezeigt werden.

Die ng-template Direktive: Ihr Bauplan für Ansichten

Was ist ng-template?

Wenn ng-view das Fenster ist, dann ist ng-template wie der Bauplan für das, was in diesem Fenster hineingehört. Es ermöglicht Ihnen, wiederverwendbare Vorlagen zu definieren, die AngularJS verwenden kann, um Ihre Ansichten zu füllen.

Wie man ng-template verwendet

Sie verwenden ng-template, indem Sie ihm eine ID geben, die Sie dann in Ihrer Routenkonfiguration referenzieren können. Hier ist ein einfaches Beispiel:

<script type="text/ng-template" id="book-list.html">
<h2>Unsere Bücher</h2>
<ul>
<li ng-repeat="book in books">{{book.title}}</li>
</ul>
</script>

Diese Vorlage definiert eine Liste von Büchern, die wir in unserer Ansicht anzeigen können.

Der $routeProvider Dienst: Ihr Verkehrsleiter

Was ist $routeProvider?

Der $routeProvider Dienst ist wie ein Verkehrsleiter für Ihre Anwendung. Er entscheidet, welche Ansicht basierend auf der aktuellen URL angezeigt werden soll.

Wie man $routeProvider verwendet

Sie konfigurieren $routeProvider normalerweise in der Konfigurationsphase Ihrer Anwendung. Hier ist ein Beispiel:

var app = angular.module('bookstoreApp', ['ngRoute']);

app.config(function($routeProvider) {
$routeProvider
.when('/', {
template: '<h2>Willkommen in unserem Buchladen!</h2>'
})
.when('/books', {
templateUrl: 'book-list.html',
controller: 'BookListController'
})
.otherwise({
redirectTo: '/'
});
});

In dieser Konfiguration:

  • Wenn die URL nur '/' ist, wird eine Willkommensnachricht angezeigt.
  • Wenn die URL '/books' ist, wird die 'book-list.html' Vorlage und der 'BookListController' verwendet.
  • Für jede andere URL wird auf '/' weitergeleitet.

Ein vollständiges Beispiel

Lassen Sie uns alles zusammenbringen mit einem vollständigeren Beispiel unserer Buchladen-App:

<!DOCTYPE html>
<html ng-app="bookstoreApp">
<head>
<title>Mein cooler Buchladen</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular-route.js"></script>
</head>
<body>
<h1>Willkommen in meinem coolen Buchladen</h1>
<nav>
<a href="#!">Startseite</a>
<a href="#!books">Bücher</a>
</nav>
<div ng-view></div>

<script type="text/ng-template" id="book-list.html">
<h2>Unsere Bücher</h2>
<ul>
<li ng-repeat="book in books">{{book.title}} von {{book.author}}</li>
</ul>
</script>

<script>
var app = angular.module('bookstoreApp', ['ngRoute']);

app.config(function($routeProvider) {
$routeProvider
.when('/', {
template: '<h2>Willkommen in unserem Buchladen!</h2><p>Stöbern Sie in unserer beeindruckenden Bücherkollektion.</p>'
})
.when('/books', {
templateUrl: 'book-list.html',
controller: 'BookListController'
})
.otherwise({
redirectTo: '/'
});
});

app.controller('BookListController', function($scope) {
$scope.books = [
{title: 'To Kill a Mockingbird', author: 'Harper Lee'},
{title: '1984', author: 'George Orwell'},
{title: 'Der groβe Gatsby', author: 'F. Scott Fitzgerald'}
];
});
</script>
</body>
</html>

Was passiert hier?

  1. Wir richten eine grundlegende HTML-Struktur mit Links zum Navigieren zwischen Ansichten ein.
  2. Wir definieren eine Vorlage für unsere Buchliste mit ng-template.
  3. Wir konfigurieren unsere Routen mit $routeProvider.
  4. Wir erstellen einen Controller, um Daten für unsere Buchliste bereitzustellen.

Wenn Sie diese App ausführen und auf den "Bücher"-Link klicken, werden Sie eine Liste von Büchern im ng-view div sehen. Magie, oder?

Fazit

Und dort haben Sie es, Leute! Wir haben unsere ersten Schritte in die Welt der AngularJS-Ansichten unternommen. Wir haben ng-view, ng-template und $routeProvider gelernt und wie sie zusammenarbeiten, um dynamische, einseitige Anwendungen zu erstellen.

Denken Sie daran, das Lernen zu programmieren ist wie das Radfahren zu lernen - es mag am Anfang wackelig erscheinen, aber mit Übung werden Sie schnell davonfliegen. Weiter experimentieren, weiter lernen und vor allem: Spaß haben!

Direktive/Dienst Zweck Beispielverwendung
ng-view Definiert, wo die aktuelle Ansicht angezeigt wird <div ng-view></div>
ng-template Definiert wiederverwendbare Vorlagen <script type="text/ng-template" id="template-name.html">...</script>
$routeProvider Konfiguriert Routen für die Anwendung $routeProvider.when('/path', { templateUrl: 'template.html', controller: 'ControllerName' });

Happy Coding, zukünftige AngularJS-Meister!

Credits: Image by storyset