如何使用多个ngFor解析angular2中的json文件?

布山·加德卡(Bhushan Gadekar)

我正在尝试解析以下json文件.Json文件已成功读取。但是我想渲染这个json文件中的所有数据。因此我使用嵌套的ngFor来做到这一点,但是我遇到了这个错误:

EXCEPTION: Cannot find a differ supporting object '[object Object]' in [comp in ParserComponent@2:13]

我也包括ngFor指令。我想递归访问所有数据。有什么办法吗?提前致谢

1. Json文件

[{
    "_id": "5694f0aab4d9a8e41f399491",
    "name": "page10",
    "pageType": "Header",
    "wsId": "567159bc1d10306c25b5b3f6",
    "desc": "pg10",
    "createdDate": "2016-01-12T12:25:14.801Z",
    "__v": 0,
    "pageObj": {
        "entity": "monthEndSummary",
        "pageType": "pages",
        "editMode": true,
        "pageLayout": "DEFAULT_LAYOUT",
        "pageName": "page10",
        "pageRows": [
            {
                "sections": [
                    {
                        "sectionRows": [
                            {
                                "secRowColumns": [
                                    {
                                        "currentIndexInSectionRow": 0,
                                        "isDynamic": true,
                                        "cmpViewType": "Regular",
                                        "uiLibrary": "LIB",
                                        "uiCategory": "headers",
                                        "uiComponent": "HEADING",
                                        "mappings": [
                                            {
                                                "mapAttr": "src1"
                                            },
                                            {
                                                "mapAttr": "src2"
                                            },
                                            {
                                                "mapAttr": "src3"
                                            },
                                            {
                                                "mapAttr": "customerName"
                                            },
                                            {
                                                "mapAttr": "cardAccNo"
                                            }
                                        ],
                                        "data": {
                                            "cardAccNo": "Card Account No",
                                            "customerName": "Customer Name",
                                            "src3": "http://localhost:3202/uploads/p3.png",
                                            "src2": "http://localhost:3202/uploads/p2.png",
                                            "src1": "http://localhost:3202/uploads/p1.png"
                                        }
                                    }
                                ]
                            },
                            {
                                "secRowColumns": [
                                    {
                                        "currentIndexInSectionRow": 0,
                                        "isDynamic": true,
                                        "uiLibrary": "LIB",
                                        "uiCategory": "info-blocks",
                                        "uiComponent": "DYNAMIC-BODY-1",
                                        "mappings": [
                                            {
                                                "mapAttr": "statementDate"
                                            },
                                            {
                                                "mapAttr": "minAmtDue"
                                            },
                                            {
                                                "mapAttr": "totalAmtDue"
                                            },
                                            {
                                                "mapAttr": "stmtSummary"
                                            },
                                            {
                                                "mapAttr": "creditSummary"
                                            },
                                            {
                                                "mapAttr": "rewards"
                                            },
                                            {
                                                "mapAttr": "bottomPara"
                                            },
                                            {
                                                "mapAttr": "prevBalance"
                                            },
                                            {
                                                "mapAttr": "purchases"
                                            },
                                            {
                                                "mapAttr": "cashAdv"
                                            },
                                            {
                                                "mapAttr": "payments"
                                            },
                                            {
                                                "mapAttr": "creditLimit"
                                            },
                                            {
                                                "mapAttr": "creditAvail"
                                            },
                                            {
                                                "mapAttr": "pointsEarned"
                                            },
                                            {
                                                "mapAttr": "payback"
                                            },
                                            {
                                                "mapAttr": "dueDate"
                                            },
                                            {
                                                "mapAttr": "Amt"
                                            },
                                            {
                                                "mapAttr": "interest"
                                            }
                                        ],
                                        "data": {
                                            "interest": "Interest will be levied if Total Amount Due is not paid",
                                            "Amt": "Rs.",
                                            "dueDate": "Due Date:",
                                            "payback": "Points Transferred to PAYBACK(Acc:",
                                            "pointsEarned": "Points Earned",
                                            "creditAvail": "Available Credit",
                                            "creditLimit": "Credit Limit",
                                            "payments": "Payments/ Credits",
                                            "cashAdv": "Cash Advances",
                                            "purchases": "Purchases/ Charges",
                                            "prevBalance": "Previous Balance", 
                                            "minAmtDue": "Minimum Amount Due",
                                            "statementDate": "Statement Date"
                                        }
                                    }
                                ]
                            },
                            {
                                "secRowColumns": [
                                    {
                                        "currentIndexInSectionRow": 0,
                                        "isDynamic": true,
                                        "uiLibrary": "IECP-LIB",
                                        "uiCategory": "info-blocks",
                                        "uiComponent": "DYNAMIC-BODY-2",
                                        "mappings": [
                                            {
                                                "mapAttr": "topHeading"
                                            },
                                            {
                                                "mapAttr": "cardNo"
                                            },
                                            {
                                                "mapAttr": "date"
                                            },
                                            {
                                                "mapAttr": "refNo"
                                            },
                                            {
                                                "mapAttr": "transactionDetails"
                                            },
                                            {
                                                "mapAttr": "rewardPt"
                                            },
                                            {
                                                "mapAttr": "currency"
                                            },
                                            {
                                                "mapAttr": "intAmt"
                                            },
                                            {
                                                "mapAttr": "amt"
                                            }
                                        ],
                                        "data": {
                                            "amt": "Amount(in)",
                                            "intAmt": "International Amount",
                                            "currency": "Currency",
                                            "rewardPt": "Reward Points",
                                            "transactionDetails": "Transaction Details",
                                            "refNo": "Ref. Number",
                                            "date": "Date",
                                            "cardNo": "Card Number:",
                                            "topHeading": "TRANSACTION DETAILS"
                                        }
                                    }
                                ]
                            },
                            {
                                "secRowColumns": [
                                    {
                                        "currentIndexInSectionRow": 0,
                                        "isDynamic": true,
                                        "uiLibrary": "LIB",
                                        "uiCategory": "Images",
                                        "uiComponent": "IMAGE",
                                        "mappings": [
                                            {
                                                "mapAttr": "heading"
                                            },
                                            {
                                                "mapAttr": "src"
                                            }
                                        ],
                                        "data": {
                                            "src": "http://localhost:3202/uploads/p4.png",
                                            "heading": "Great offers on your card"
                                        }
                                    }
                                ]
                            },                           
                            {
                                "secRowColumns": [
                                    {
                                        "currentIndexInSectionRow": 0,
                                        "isDynamic": true,
                                        "uiLibrary": "LIB",
                                        "uiCategory": "Body",
                                        "uiComponent": "STATIC-BODY-2",
                                        "mappings": [
                                            {
                                                "mapAttr": "heading"
                                            },
                                            {
                                                "mapAttr": "point1"
                                            },
                                            {
                                                "mapAttr": "point2"
                                            },
                                            {
                                                "mapAttr": "point3"
                                            },
                                            {
                                                "mapAttr": "point4"
                                            },
                                            {
                                                "mapAttr": "point5"
                                            },
                                            {
                                                "mapAttr": "point6"
                                            },
                                            {
                                                "mapAttr": "point7"
                                            },
                                            {
                                                "mapAttr": "bottomText"
                                            },
                                            {
                                                "mapAttr": "src"
                                            },
                                            {
                                                "mapAttr": "signature"
                                            }
                                        ],
                                        "data": {
                                            "signature": "Authorised Signatory",
                                            "src": "http://localhost:3202/uploads/p9.png",
                                            "bottomText": "For ",
                                            "point7": "For payments made through cheque, we request you to make the paymentatleast3workingdaysbeforetheduedateincaseofchequeand%workingdaysbeforethe."
                                        }
                                    }
                                ]
                            },
                            {
                                "secRowColumns": [
                                    {
                                        "currentIndexInSectionRow": 0,
                                        "isDynamic": true,
                                        "uiLibrary": "LIB",
                                        "uiCategory": "Footer",
                                        "uiComponent": "FOOTER",
                                        "mappings": [
                                            {
                                                "mapAttr": "topParaLine1"
                                            },
                                            {
                                                "mapAttr": "topParaLine2"
                                            },
                                            {
                                                "mapAttr": "bottomParaLine1"
                                            },
                                            {
                                                "mapAttr": "bottomParaLine2"
                                            }
                                        ],
                                        "data": {
                                           
                                        }
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "updatedDate": "2016-01-18T05:30:09.558Z"
}
]

2.parser.component.ts

<div class="row">
<div *ngFor="#comp of record">
    {{comp.name}}
    <div *ngFor="#temp of comp.pageObj">
        {{temp.entity}}
        <div *ngFor="#pRow of temp.pageRows">
            <div *ngFor="#temp of comp.pageObj">
            </div>
        </div>
    </div>
</div>

蒂埃里圣堂武士

我猜您使用的是用于获取数据的observable,而不是接收到的数据。也许您可以使用async管道来解决问题。

@Component({
  (...)
  template: `
    <div class="row">
      <div *ngFor="#comp of record | async">
    (...)
  `
})
export class MyComp {
   constructor(http:Http) {
     this.record = http.get('http://...').map(res => res.json());
   }
}

编辑

ngFor只能遍历数组而不是对象。它看到pageObjJSON中的属性是一个对象,而不是数组。

您可以按照以下说明更新模板代码:

<div class="row">
  <div *ngFor="#comp of record">
    {{comp.name}}
    <div>
        {{comp.pageObj.entity}}
        <div *ngFor="#pRow of comp.pageObj.pageRows">
           (...)
        </div>
    </div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用ngFor在angular2中加载多个子组件?

来自分类Dev

Angular2中的Ng-repeat-start-也使用NgFor重复多个元素

来自分类Dev

在angular2中解析json

来自分类Dev

ngFor中的Angular2 UL / LI JSON树递归

来自分类Dev

如何在Angular2中使用* ngFor动态生成ngModel?

来自分类Dev

如何在Angular2中对NgFor的结果运行函数?

来自分类Dev

如何在Angular2的ngFor指令中缓存值?

来自分类Dev

如何在angular2 formControl中使用ngFor

来自分类Dev

Angular2:ngfor如何扩展

来自分类Dev

如何使用TypeScript在Angular2处将html输入值解析为json数据

来自分类Dev

如何在Angular2中使用路由参数创建一个外部JSON数据文件?

来自分类Dev

在Angular2中过滤NgFor

来自分类Dev

ngfor中的angular2形式

来自分类Dev

Angular2中的分组元素* ngFor

来自分类Dev

在 Angular2 中对 *ngFor 的承诺

来自分类Dev

如何在Angular2中使用* ngFor将超链接添加到表的列

来自分类Dev

Angular2 - 带有多个复选框的 NgFor

来自分类Dev

如何从 Roku Scenegraph (brightscript) 中的多个 JSON 文件解析?

来自分类Dev

使用Lua从文件解析json中的多个数组

来自分类Dev

Angular2 使用管道获取非常深的嵌套 json 值!*ngFor

来自分类Dev

使用JSON文件的angular2设置模拟环境

来自分类Dev

如何使用Javascript在angular 2中导入ngFor?

来自分类Dev

如何在Angular 2 / Angular中解析tsx文件-Cli

来自分类Dev

Angular2 如何从 ngFor 中只获取一个值

来自分类Dev

如何仅在用户在 ngFor Angular2 中单击的元素上显示错误消息

来自分类Dev

Angular2 如何在 *ngFor 中添加两个值

来自分类Dev

Angular2模板解析错误:属性绑定ngFor未被嵌入式模板上的任何指令使用

来自分类Dev

在angular2中使用ngFor不会显示迭代名称

来自分类Dev

使用ngFor显示排序后的列表,而不对Angular2中的源进行排序

Related 相关文章

  1. 1

    如何使用ngFor在angular2中加载多个子组件?

  2. 2

    Angular2中的Ng-repeat-start-也使用NgFor重复多个元素

  3. 3

    在angular2中解析json

  4. 4

    ngFor中的Angular2 UL / LI JSON树递归

  5. 5

    如何在Angular2中使用* ngFor动态生成ngModel?

  6. 6

    如何在Angular2中对NgFor的结果运行函数?

  7. 7

    如何在Angular2的ngFor指令中缓存值?

  8. 8

    如何在angular2 formControl中使用ngFor

  9. 9

    Angular2:ngfor如何扩展

  10. 10

    如何使用TypeScript在Angular2处将html输入值解析为json数据

  11. 11

    如何在Angular2中使用路由参数创建一个外部JSON数据文件?

  12. 12

    在Angular2中过滤NgFor

  13. 13

    ngfor中的angular2形式

  14. 14

    Angular2中的分组元素* ngFor

  15. 15

    在 Angular2 中对 *ngFor 的承诺

  16. 16

    如何在Angular2中使用* ngFor将超链接添加到表的列

  17. 17

    Angular2 - 带有多个复选框的 NgFor

  18. 18

    如何从 Roku Scenegraph (brightscript) 中的多个 JSON 文件解析?

  19. 19

    使用Lua从文件解析json中的多个数组

  20. 20

    Angular2 使用管道获取非常深的嵌套 json 值!*ngFor

  21. 21

    使用JSON文件的angular2设置模拟环境

  22. 22

    如何使用Javascript在angular 2中导入ngFor?

  23. 23

    如何在Angular 2 / Angular中解析tsx文件-Cli

  24. 24

    Angular2 如何从 ngFor 中只获取一个值

  25. 25

    如何仅在用户在 ngFor Angular2 中单击的元素上显示错误消息

  26. 26

    Angular2 如何在 *ngFor 中添加两个值

  27. 27

    Angular2模板解析错误:属性绑定ngFor未被嵌入式模板上的任何指令使用

  28. 28

    在angular2中使用ngFor不会显示迭代名称

  29. 29

    使用ngFor显示排序后的列表,而不对Angular2中的源进行排序

热门标签

归档