2017-07-31 95 views
0

对象我有对象:* ngFor模板离子2

messages = [{ 
    'One' : [ 
     {'id' : 1}, 
     {'id' : 2}, 
    ], 
    'Two' : [ 
     {'id' : 1}, 
     {'id' : 2}, 
    ] 
}] ; 

我曾尝试下面的代码,但我以前不运行,请告诉我,我做错了。

<div *ngFor="let message of messages"> 
    <div>KEY</div> 
    <div *ngFor="let value of message">VALUE</div> 
</div> 

在代码我需要显示的键和值

我的解决办法

在组分:

this.messages = data['messages'] ; 
this.keys = Object.keys(data['messages']); 

鉴于:

<div *ngFor="let key of keys"> 
    <div>{{key}}</div> 
    <div *ngFor="let message of messages[key]">{{message['id']}}</div> 
</div> 
+0

NgFor仅支持绑定到Iterables这样的s阵列 – Hareesh

回答

0

如果你不想创建您可以在this SO-答案暴露Object.keys像管。

你的组分:

@Component({ 
    ... 
}) 
export class YourComponent{ 
    objectKeys: any = Object.keys; 
    messages: Array<any>; 

    constructor(){} 

    ... 
} 

HTML:

<div *ngFor="let message of messages"> 
    <div *ngFor="let key of objectKeys(message)"> 
     <div>KEY: {{ key }}</div> 
     <div *ngFor="let val of message[key]">{{ val.id }}</div> 
    </div> 
</div> 

OUTPUT:

KEY: One 
1 
2 
KEY: Two 
1 
2