AngularJS - LastFm-Anwendung: Erstellung einer Musikentdeckungs-App
Einführung
Hallo, angehende Programmierer! Heute werden wir eine aufregende Reise in die Welt der Webentwicklung antreten. Wir werden eine Musikentdeckungsanwendung mit AngularJS und der LastFm-API erstellen. Keine Sorge, wenn Sie noch nie zuvor kodiert haben – ich werde Sie jeden Schritt des Weges begleiten, genau wie ich es in den letzten Jahren für unzählige Schüler getan habe. Los geht's!
Was ist AngularJS?
Bevor wir mit dem Coden beginnen, lassen Sie uns verstehen, was AngularJS ist. Stellen Sie sich vor, Sie bauen ein Haus. AngularJS ist wie das Gerüst dieses Hauses – es bietet Struktur und Unterstützung für Ihre Webanwendung. Es ist ein leistungsstarkes JavaScript-Framework, das uns hilft, dynamische, einseitige Anwendungen mühelos zu erstellen.
Einrichtung unseres Projekts
Schritt 1: Erstellung der HTML-Struktur
Lassen Sie uns mit der grundlegenden Struktur unserer Anwendung beginnen. Öffnen Sie Ihren bevorzugten Texteditor und erstellen Sie eine neue Datei namens index.html
. Hier ist, was wir hineinsetzen werden:
<!DOCTYPE html>
<html ng-app="lastfmApp">
<head>
<title>LastFm Music Discovery</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainController">
<h1>LastFm Music Discovery</h1>
<input type="text" ng-model="artistName" placeholder="Artistennamen eingeben">
<button ng-click="searchArtist()">Suchen</button>
<div ng-if="artist">
<h2>{{artist.name}}</h2>
<p>{{artist.bio.summary}}</p>
</div>
</body>
</html>
Lassen Sie uns das auseinandernehmen:
-
ng-app="lastfmApp"
: Dies tells AngularJS, dass dies das Wurzelelement unserer Anwendung ist. -
ng-controller="MainController"
: Dies gibt an, welcher Controller die Logik für diesen Teil unserer App verwalten soll. -
ng-model="artistName"
: Dies bindet das Eingabefeld an eine Variable namensartistName
in unserem Controller. -
ng-click="searchArtist()"
: Dies weist AngularJS an, die FunktionsearchArtist()
aufzurufen, wenn der Button geklickt wird. -
ng-if="artist"
: Dies zeigt nur die Künstlerinformationen an, wenn ein Künstler gefunden wurde.
Schritt 2: Erstellung der AngularJS-Anwendung
Nun erstellen wir unsere AngularJS-Anwendung. Erstellen Sie eine neue Datei namens app.js
und fügen Sie den folgenden Code hinzu:
var app = angular.module('lastfmApp', []);
app.controller('MainController', function($scope, $http) {
$scope.searchArtist = function() {
var apiKey = 'YOUR_LASTFM_API_KEY';
var apiUrl = 'http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=' + $scope.artistName + '&api_key=' + apiKey + '&format=json';
$http.get(apiUrl).then(function(response) {
$scope.artist = response.data.artist;
});
};
});
Lassen Sie uns das auseinandernehmen:
- Wir erstellen ein AngularJS-Modul namens
lastfmApp
. - Wir definieren einen Controller namens
MainController
. - Innerhalb des Controllers definieren wir die Funktion
searchArtist
, die eine HTTP-Anfrage an die LastFm-API sendet. - Wir verwenden
$scope
, um Variablen und Funktionen für unsere HTML-Seite zugänglich zu machen. - Wir verwenden
$http
, um die API-Anfrage zu senden.
Verständnis der AngularJS-Konzepte
Nun, da wir unsere grundlegende Anwendung eingerichtet haben, tauchen wir tiefer in einige AngularJS-Konzepte ein.
Module
In AngularJS sind Module Behälter für verschiedene Teile Ihrer Anwendung. Sie helfen dabei, Ihren Code organisiert und wartbar zu halten. In unserem Fall haben wir ein Modul namens lastfmApp
erstellt:
var app = angular.module('lastfmApp', []);
Controller
Controller sind där, wo wir das Verhalten unserer Anwendung definieren. Sie enthalten die Logik, die unsere App antreibt. In unserem Beispiel haben wir einen MainController
erstellt:
app.controller('MainController', function($scope, $http) {
// Controller-Logik hier
});
Scopes
Scopes sind Objekte, die auf das Modell verweisen. Sie wirken als Kitt, das den Controller und die Ansicht verbindet. Wenn wir $scope
in unserem Controller verwenden, machen wir Daten für unsere HTML-Seite zugänglich:
$scope.artist = response.data.artist;
Direktiven
Direktiven sind Markierungen auf DOM-Elementen, die AngularJS anweisen, eine bestimmteaktion an diesem DOM-Element auszuführen. Wir haben mehrere Direktiven in unserem HTML verwendet:
ng-app
ng-controller
ng-model
ng-click
ng-if
Erweiterung unserer Anwendung
Nun, da wir die Grundlagen verstehen, fügen wir unserer Anwendung einige zusätzliche Funktionen hinzu.
Anzeige ähnlicher Künstler
Lassen Sie uns unser HTML ändern, um ähnliche Künstler anzuzeigen:
<div ng-if="artist">
<h2>{{artist.name}}</h2>
<p>{{artist.bio.summary}}</p>
<h3>Ähnliche Künstler</h3>
<ul>
<li ng-repeat="similar in artist.similar.artist">{{similar.name}}</li>
</ul>
</div>
Hier verwenden wir die ng-repeat
-Direktive, um durch die ähnlichen Künstler zu iterieren und sie in einer Liste anzuzeigen.
Hinzufügen von Fehlerbehandlung
Lassen Sie uns einige Fehlerbehandlung in unseren Controller hinzufügen:
app.controller('MainController', function($scope, $http) {
$scope.searchArtist = function() {
var apiKey = 'YOUR_LASTFM_API_KEY';
var apiUrl = 'http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=' + $scope.artistName + '&api_key=' + apiKey + '&format=json';
$http.get(apiUrl).then(function(response) {
$scope.artist = response.data.artist;
$scope.error = null;
}, function(error) {
$scope.error = "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.";
$scope.artist = null;
});
};
});
Und fügen wir dies zu unserem HTML hinzu:
<p ng-if="error" style="color: red;">{{error}}</p>
Schlussfolgerung
Glückwunsch! Sie haben gerade Ihre erste AngularJS-Anwendung erstellt. Wir haben viel Boden abgedeckt, von der Einrichtung der grundlegenden Struktur bis hin zum Hinzufügen von Funktionen und Fehlerbehandlung. Denken Sie daran, dass das Lernen zu programmieren eine Reise ist, und jede Anwendung, die Sie erstellen, lehrt Sie etwas Neues.
Hier ist eine Tabelle, die die wichtigsten AngularJS-Konzepte zusammenfasst, die wir behandelt haben:
Konzept | Beschreibung |
---|---|
Module | Behälter für Teile der App |
Controller | Definieren das Verhalten der App |
Scopes | Wirken als Kitt zwischen Controller und Ansicht |
Direktiven | Erweitern HTML mit benutzerdefinierten Attributen und Elementen |
Weiters üben, weiter bauen und vor allem Spaß am Programmieren haben. Vor Ihnen liegen komplexe Webanwendungen, die Sie mühelos erstellen werden. Frohes Programmieren!
Credits: Image by storyset