Elaboration de la réponse de @ Thierry avec exemple.
Il n'y a ni tuyau ni méthode intégrés pour obtenir key and value
de la boucle * ngFor. nous devons donc créer un tuyau personnalisé pour le même. comme l'a dit thierry, voici la réponse avec le code.
** La classe pipe implémente la méthode de transformation de l'interface PipeTransform qui prend une valeur d'entrée et un tableau facultatif de chaînes de paramètres et renvoie la valeur transformée.
** La méthode de transformation est essentielle à un tuyau. L'interface PipeTransform définit cette méthode et guide à la fois l'outillage et le compilateur. C'est facultatif; Angular recherche et exécute la méthode de transformation indépendamment. pour plus d'informations concernant les tuyaux, reportez-vous ici
import {Component, Pipe, PipeTransform} from 'angular2/core';
import {CORE_DIRECTIVES, NgClass, FORM_DIRECTIVES, Control, ControlGroup, FormBuilder, Validators} from 'angular2/common';
@Component({
selector: 'my-app',
templateUrl: 'mytemplate.html',
directives: [CORE_DIRECTIVES, FORM_DIRECTIVES],
pipes: [KeysPipe]
})
export class AppComponent {
demo = {
'key1': 'ANGULAR 2',
'key2': 'Pardeep',
'key3': 'Jain',
}
}
@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
transform(value, args:string[]) : any {
let keys = [];
for (let key in value) {
keys.push({key: key, value: value[key]});
}
return keys;
}
}
et la partie HTML est:
<ul>
<li *ngFor='#key of demo | keys'>
Key: {{key.key}}, value: {{key.value}}
</li>
</ul>
Working Plnkr http://plnkr.co/edit/50LlK0k6OnMnkc2kNHM2?p=preview
mise à jour vers RC
comme suggéré par user6123723 (merci) en commentaire voici la mise à jour.
<ul>
<li *ngFor='let key of demo | keys'>
Key: {{key.key}}, value: {{key.value}}
</li>
</ul>
key, value
type de syntaxe de paire de support dans angular2ngFor
, vous devriez regarder cette réponse