Templates

Aufgabe 1: Beispiel aus der Vorlesung

Implementieren Sie das Beispiel von der Folie "Vollständiges Beispiel" aus der Vorlesung, um die Template-Verarbeitung mit Vue auszuprobieren. Legen Sie zu diesem Zweck eine neue HTML-Datei an und ggf. für eine stärkere Trennung des Codes zusätzlich eine JavaScript-Datei und importieren Sie Vue mit einem <script>-Tag in die HTML-Datei. Vue können Sie durch Rechtsklick auf diesen Link herunterladen und im gleichen Verzeichnis wie ihre HTML-Datei speichern.

Aufgabe 2: Gästeliste ausgeben

Erweitern Sie die Lösung von Aufgabe 1 nun - analog zur Folie "Beispiel: Gästeliste ausgeben" - um die Ausgabe der Personen einer Gästeliste mit Hilfe einer v-for-Direktive iterativ auszugeben.

Aufgabe 3: Eingelesene Personendaten tabellarisch darstellen

In der vorigen Aufgabe wurden die Kontextdaten durch direktes Zuweisen an eine Variable in Programmcode erstellt. Im Sinne der Konzeption eines Programms nach dem MVC-Designmuster sollten Daten von der Präsentation und Steuerung getrennt gespeichert werden.

Die persönlichen Daten einer Gruppe von Personen sollen deswegen in dieser Aufgabe in geeigneter Anordnung als JSON-Datei gespeichert und mit Hilfe einer Webseite tabellarisch angezeigt werden.

Es liegen die Daten folgender Personen vor:

Vorname Nachname Wohnort
Anton Ackermann Altenstadt
Brigitte Beckmann Bernstadt
Daniela Dannenmann Dornstadt
Hartmut Hartmann Heroldstatt

Legen Sie eine JSON-Datei für diese Daten so an, dass später die einzelnen Personeneinträge durch eine v-for-Direktive, entsprechend zu den Erläuterungen auf der Folie "Beispiel: Gästeliste ausgeben" dargestellt werden. Strukturieren Sie Ihr Template in der Weise, dass die Darstellung der Daten wie oben in Form einer Tabelle erfolgt.

Erweitern Sie Ihre vorhandene HTML- und ggf. JavaScript-Datei oder legen Sie eine neue Dateistruktur an. Lesen Sie mittels JavaScript die Daten aus der JSON-Datei ein. Zeigen Sie die Daten mit Hilfe eines Vue-Templates als HTML-Tabelle an.

Aufgabe 4: Eingeschachtelte Daten ausgeben

Es liegen die Daten folgender Personen zusammen mit deren Adresse vor:

Vorname Nachname Wohnort Straße Nr.
Anton Ackermann Altenstadt Amselstr. 10
Daniela Dannenmann Dornstadt Drosselstr. 20

Legen Sie eine JSON-Datei für diese Daten an. Die Adressdaten werden jeweils in einem eingeschachtelten Objekt adresse mit den Eigenschaften wohnort, str für die Straße und nr für die Hausnummer gespeichert.

Lesen Sie in den vorhandenen oder neuen Projektdateien wieder mittels JavaScript die neuen JSON-Daten ein und stellen Sie diese mit Hilfe von Vue tabellarisch wie oben angegeben als HTML-Tabelle dar.

Aufgabe 5: Vorhandene eingeschachtelte Daten ausgeben

Zu den folgenden Personendaten existieren zum Teil Adressangaben, zum Teil aber auch nicht:

Vorname Nachname Wohnort Straße Nr.
Anton Ackermann Altenstadt Amselstr. 10
Brigitte Beckmann
Daniela Dannenmann Dornstadt Drosselstr. 20
Hartmut Hartmann

Legen Sie eine JSON-Datei für diese Daten an. Lesen Sie dann in den vorhandenen oder neuen Projektdateien wieder mittels JavaScript die neuen JSON-Daten ein und stellen Sie diese wieder mit Hilfe von Vue tabellarisch wie folgt als HTML-Tabelle dar:

Vorname Nachname Wohnort Str. Nr.
Anton Ackermann Altenstadt Amselstr. 10
Brigitte Beckmann ./. ./. ./.
Daniela Dannenmann Dornstadt Drosselstr. 20
Hartmut Hartmann ./. ./. ./.

Fehlen Adressangaben, so wird im Template in der entsprechenden Tabellenspalte die Zeichenfolge "./." eingefügt. Nutzen Sie zu diesem Zweck die v-if-Direktive, mit der Sie prüfen, ob in den Personendaten ein eingeschachteltes Adressobjekt existiert. Prüfen Sie dabei auf das eingeschachtelte Objekt selbst und nicht auf dessen Objekteigenschaften. Die v-if-Direktive unterstützt bislang keine beliebig verschachtelten Objekte. Nähere Informationen zum bedingten Rendern unter Vue finden Sie unter diesem Link.

Aufgabe 6: Feld ausgeben

Neben dem Namen und den eventuell vorhandenen Adressangaben, umfassen die folgenden Personendaten auch die Merkmale Alter, Größe und Gewicht:

Vorname Nachname Wohnort Str. Nr. Alter Größe Gewicht
Anton Ackermann Altenstadt Amselstr. 10 32 1,91 100
Brigitte Beckmann


18 1,66 60
Daniela Dannenmann Dornstadt Drosselstr. 20 42 1,78 72
Hartmut Hartmann


20 1,75 66

Legen Sie eine JSON-Datei für diese Daten an.

Die in der Tabelle jeweils angegebenen drei Merkmale Alter, Größe und Gewicht werden im zugehörenden Objektliteral in einem Feld mit dem Eigenschaftsnamen merkmale gespeichert.
Die Adressdaten stehen wieder in einem eingeschachtelten Objekt adresse, mit den Eigenschaften wohnort, str für die Straße und nr für die Hausnummer.

Legen Sie eine JSON-Datei für diese Daten an. Lesen Sie dann in den vorhandenen oder neuen Projektdateien wieder mittels JavaScript die neuen JSON-Daten ein und stellen Sie diese wieder mit Vue wie folgt als HTML-Tabelle dar:

Vorname Nachname Wohnort Str. Nr. Alter Größe Gewicht
Anton Ackermann Altenstadt Amselstr. 10 32 1,91 100
Brigitte Beckmann ./. ./. ./. 18 1,66 60
Daniela Dannenmann Dornstadt Drosselstr. 20 42 1,78 72
Hartmut Hartmann ./. ./. ./. 20 1,75 66

Nicht vorhandene Adressangaben werden wieder mit der Zeichenfolge "./." codiert.

Für die Verarbeitung der Merkmale benötigen Sie eine geschachtelte v-for-Direktive, d. h. eine v-for-Direktive in einer v-for-Direktive. Es wird in diesem Zusammenhang auch von einem geschachtelten iterativen Kontext gesprochen.