Comment itérer clés de l'objet à l'aide de *ngFor?
J'ai fouiné partout, et a trouvé que je peux utiliser ce qui suit pour utiliser *ngFor sur un objet:
<div *ngFor="#obj of objs | ObjNgFor">...</div>
où ObjNgFor
pipe est:
@Pipe({ name: 'ObjNgFor', pure: false })
export class ObjNgFor implements PipeTransform {
transform(value: any, args: any[] = null): any {
return Object.keys(value).map(key => value[key]);
}
}
Cependant, quand j'ai un objet comme celui-ci:
{
"propertyA":{
"description":"this is the propertyA",
"default":"sth"
},
"propertyB":{
"description":"this is the propertyB",
"default":"sth"
}
}
Je ne suis pas tout à fait sûr de savoir comment je peux extraire propertyA " et "propertyB", de sorte qu'il est accessible à partir de l' *ngFor directive. Des idées?
Mise à JOUR
Ce que je veux faire, est de présenter le code HTML suivant:
<div *ngFor="#obj of objs | ObjNgFor" class="parameters-container">
<div class="parameter-desc">
{{SOMETHING}}:{{obj.description}}
</div>
</div>
Où quelque chose serait égale à propertyA
et propertyB
(c'est la façon dont l'objet est structurée). Donc, cela donnerait:
propertyA:this is the propertyA
propertyB:this is the propertyB
Vous devez vous connecter pour publier un commentaire.
Mise à jour
Dans 6.1.0-bêta.1
KeyValuePipe
a été introduit https://github.com/angular/angular/pull/24319Plunker Exemple
Version précédente
Vous pouvez essayer quelque chose comme cela
Puis sur votre modèle
Plunker
Ou au lieu de créer un tuyau et le passage d'un objet à l' *ngFor, il suffit de passer
Object.keys(MyObject)
à *ngFor. Il retourne la même que la pipe, mais sans les tracas.Sur Tapuscrit fichier:
Sur le modèle (html):
Il suffit de retourner les clés de la pipe au lieu de valeurs, puis utilisez les touches pour accéder aux valeurs:
(
let
au lieu de#
dans la version bêta.17)Plunker exemple
Voir aussi Sélectionnez en fonction de la enum dans Angular2
async
pipe siobjs
est asynchrone?{{someObservable | async | ObjNgFor}}
clés.la pipe.ts
app.le module.ts
example.component.html
pas utiliser des tubes à cela, il exemple