ตัวอย่างคำตอบของ @ Thierry อย่างละเอียด
ไม่มีkey and value
ไพพ์ภายในหรือวิธีการที่จะได้รับจากการวนซ้ำ * ngFor ดังนั้นเราต้องสร้างไปป์ที่กำหนดเองสำหรับเดียวกัน ตามที่กล่าวว่านี่เป็นคำตอบด้วยรหัส
** คลาสไปป์ใช้วิธีการแปลงอินเทอร์เฟซของ PipeTransform ซึ่งรับค่าอินพุตและอาร์เรย์ทางเลือกของสตริงพารามิเตอร์และส่งคืนค่าที่แปลงแล้ว
** วิธีการเปลี่ยนรูปเป็นสิ่งจำเป็นสำหรับท่อ ส่วนต่อประสาน PipeTransform จะกำหนดวิธีการนั้นและให้คำแนะนำเครื่องมือและคอมไพเลอร์ มันเป็นตัวเลือก; Angular ค้นหาและดำเนินการวิธีการแปลงโดยไม่คำนึงถึง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับท่ออ้างอิงที่นี่
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;
}
}
และส่วน HTML คือ:
<ul>
<li *ngFor='#key of demo | keys'>
Key: {{key.key}}, value: {{key.value}}
</li>
</ul>
การทำงานของ Plnkr http://plnkr.co/edit/50LlK0k6OnMnkc2kNHM2?p=preview
อัปเดตเป็น RC
ตามที่แนะนำโดย user6123723 (ขอบคุณ) ในความคิดเห็นที่นี่คือการปรับปรุง
<ul>
<li *ngFor='let key of demo | keys'>
Key: {{key.key}}, value: {{key.value}}
</li>
</ul>
key, value
ไวยากรณ์ของคู่ใน angular2ngFor
คุณควรดูคำตอบนี้