Ich habe ein Datenmodellprojekt in Angular 2. Ich habe nur drei Klassen.Methode zum Objekt in Object Angular 2 abrufen
class Menu {
name: string;
categories: { [name: string]: Category };
}
class Category {
name: string;
dishes: { [name: string]: Dish };
}
class Dish {
name: string;
}
In jeder Klasse habe ich zwei Methoden erstellt.
getName(){ return this.name }
// in allen Klassen
und
getCategory() { return this.categories }
// bei Menu-Klasse
getDishes() { return this.dishes }
// falls der Kategorie Klasse
In meiner home.ts Komponente, Ich habe die Datenanforderung (http-Anfrage) vom Backend und ich lege alle Daten in diese Klassen. Das funktioniert OK.
getMenus() {
this.globals.getMenus().subscribe(
data => {
this.menus = {};
Object.keys(data).forEach(name => {
this.menus[name] = new Menu(data[name]);
});
console.log(this.menus);
},
err => { console.log(err) }
);
}
console.log (this.menus) funktioniert OK und druckt das gesamte Datenmodell korrekt.
Nun, meine Frage ist:
Wie kann ich die get-Methoden verwenden, um eine Liste in meinem home.html mit allen Daten zu machen, wie:
- Menu 1
- "name of menu"
- Category 1
"name of category"
- Dish 1
- "name of dish 1"
- Category 2
"name of category 2"
- Dish 1
- "name of dish 1"
Menu 2
- "name of menu 2
- Category 1
- ... etc
Das ist die Json Server-Antwort ist:
{
"menu_1": {
"name": "Menú de día",
"cat_1": {
"name": "Entrantes",
"dish_1": {
"Name": "Ensalada Romana"
},
"dish_2": {
"Name": "Sopa de galets"
}
},
"cat_2": {
"name": "Segundos",
"dish_1": {
"Name": "Calamares a la romana"
},
"dish_2": {
"Name": "Tortilla de patatas"
}
}
},
"menu_2": {
"name": "Menú Principal",
"cat_1": {
"name": "Primer Plato",
"dish_1": {
"Name": "Ensalada Romana"
},
"dish_2": {
"Name": "Sopa de galets"
}
},
"cat_2": {
"name": "Segundo Plato",
"dish_1": {
"Name": "Calamares a la romana"
},
"dish_2": {
"Name": "Tortilla de patatas"
}
},
"cat_3": {
"name": "Postres",
"dish_1": {
"Name": "Crema Catalana"
}
}
}
}
Vielen Dank im Voraus.
Ja !! Es funktioniert für mich: D danke –
@Javier Wenn du glaubst, dass dies die Antwort sein sollte, akzeptiere es, damit andere es benutzen können, wenn nicht und du hast etwas Besseres hier gemacht, das macht einen guten Gemeinschaftsbeitrag :) – Ankesh
Fertig @Ankesh;) –