@Thierry의 답변을 예를 들어 설명합니다.
key and value
* ngFor 루프에서 가져올 파이프 나 메소드가 없습니다 . 동일한 파이프를 만들어야합니다. thierry가 말했듯이 여기에 코드가있는 대답이 있습니다.
** 파이프 클래스는 입력 값과 선택적 매개 변수 문자열 배열을 사용하여 변환 된 값을 리턴하는 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 (thanks)에서 제안한대로 여기 업데이트입니다.
<ul>
<li *ngFor='let key of demo | keys'>
Key: {{key.key}}, value: {{key.value}}
</li>
</ul>
key, value
angular2ngFor
에는 페어 종류의 구문이 지원되지 않습니다 . 이 답변을