*ngFor 模板 Ionic 2 中的对象 [重复]

Posted

技术标签:

【中文标题】*ngFor 模板 Ionic 2 中的对象 [重复]【英文标题】:*ngFor Object in template Ionic 2 [duplicate] 【发布时间】:2018-01-07 04:48:53 【问题描述】:

我有对象:

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>

在代码中我需要显示 KEY 和 VALUE

我的解决方案

在组件中:

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>

【问题讨论】:

NgFor 只支持绑定到数组等Iterables 【参考方案1】:

您可以使用How to iterate [object object] using *ngFor in Angular 2 中所示的管道

<div *ngFor="let message of messages">
    <div>KEY</div>
    <div *ngFor="let key of message | keys">message[key]</div>
</div>

【讨论】:

你是对的,我很抱歉。我可能是昏迷了【参考方案2】:

如果您不想创建管道,您可以公开Object.keys,就像在this SO-answer 中一样。

您的组件:

@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>

输出:

KEY: One
1
2
KEY: Two
1
2

【讨论】:

以上是关于*ngFor 模板 Ionic 2 中的对象 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 2 - *ngFor 值之间的随机洗牌

嵌入式模板上的任何指令均未使用属性绑定 ngForIn - Ionic 2

如何用管道翻译 Ionic/Angular 中 *ngFor 循环的返回

Angular2,Ionic2:如何使用 ngModel 对嵌套 *ngfor 中的单选按钮进行 2way 绑定?

*ngFor 如何与 Angular 2 中的模板变量一起工作?

在角度 2 中迭代 Ngfor 上的 json 对象