微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用嵌套的json对象进行角度重复?

我有一个 JSON对象,这样表示:
{
  "orders" : [
    {
      "ordernum" : "PRAAA000000177800601","buyer" : "Donna heywood"
      "parcels" : [
        {
          "upid" : "UPID567890123456","tpid" : "TPID789456789485"
        },{
          "upid" : "UPID586905486090","tpid" : "TPID343454645455"          
        }
      ]
    },{
      "ordernum" : "ORAAA000000367567345","buyer" : "Melanie Daniels"
      "parcels" : [
        {
          "upid" : "UPID456547347776","tpid" : "TPID645896579688"
        },{
          "upid" : "UPID768577673366","tpid" : "TPID784574333345"
        }
      ]
    }
  ]
}

我需要在第二级做一个中继器,一个“upid”数字的列表.

我已经知道如何获得顶级

< li ng-repeat =“o in orders”> {{o.ordernum}}< / li>

但是我不清楚顺序将循环水平下降.例如,这是错误的:

< li ng-repeat =“p in orders.parcels”> {{p.upid}}< / li>

我也知道如何嵌套中继器来获得这个,但在这种情况下,我不需要显示顶级.

澄清

这里的目的是要有一个4“upid”数字的列表(每个包裹有2个,订单中有2个包裹).

解决方法

搜索很多很好的和简单的解决方案来动态迭代.我想出了这个

JAVASCRIPT(角):一个人是嵌套对象的一个​​例子. is_object函数将在HTML视图中使用.

$scope.person = {
    "name": "john","properties": {
       "age": 25,"sex": "m"
    },"salary": 1000
}

// helper method to check if a field is a nested object
$scope.is_object = function (something) {
    return typeof (something) == 'object' ? true : false;
};

HTML:为简单表定义一个模板.第一个TD是显示的关键.另一个TD(2或3,但从不同时)将显示值,如果它不是一个对象(数字/字符串),或者如果它的一个对象再次循环.

<table border="1">
<tr ng-repeat="(k,v) in person">
    <td> {{ k }} </td>
    <td ng-if="is_object(v) == false"> {{ v }} </td>
    <td ng-if="is_object(v)">
        <table border="1">
            <tr ng-repeat="(k2,v2) in v">
                <td> {{ k2 }} </td>
                <td> {{ v2 }} </td>
            </tr>
        </table>
    </td>
</tr>
</table>

原文地址:https://www.jb51.cc/js/153781.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐