显示2个组合JSON对象的模块化结果

时间:2018-05-15 12:15:40

标签: javascript angularjs

目前我正在将2个单独的json结果合并到1个名为CustomerObject的对象中。

Javascript代码:

$scope.customerObject.push(result['customers']);
$scope.customerObject.push(result['servers_to_monitor']);
$scope.customerObject.push.apply(result['customers']);
$scope.customerObject.push.apply(result['servers_to_monitor']);
console.log($scope.customerObject);

以上代码组合在以下对象中:

(2) [Array(6), {…}]
0:(6) ["customername one", "two", "etc", "etc", "etc", "etc"]
1:{customername one: Array(0), two: Array(2), etc: Array(0), etc: 
Array(0), etc: Array(3), …}
length:2

我只是在迭代customerObject[0]的值 但是,有些值需要从<p class="mapsColor">{{customerObject[1]}} need to be iterated through as well</p>

显示

如果我通过整个customerObject执行 ng-repeat ,我可以访问这两个值但是这意味着它只会重复两次(其中包含对象的2个对象)和我确实需要为列表中的每个客户重复(存储在customerObject[0]中)。

CustomerObject[1]包含许多填充数据的对象。
现行守则:

<div ng-repeat="row in customerObject[0]  " class="{{css}}" style="border-radius: 15px">
    <div  style="float: left; border-radius: 15px !important;" id="{{row}}" ng class="google_maps"></div>
<div style="position: absolute; top: 15px;">
    <div class="pull-right  mapsLegenda"   id="mapsRedBox"> 
        <h1 id="header_{{makeIdPickable(row)}}" class="pull-left  mapsTotal" style=" font-size: x-large !important; color: white ;">{{row}}: {{totals[$index]}}</h1>
        <br>
        <ul >
            <li >
                    <div class="mapsColor">
                <p class="mapsColor">{{customerObject[1].customername[0]['servername']}}</p>
                    <div class="color-box"  style="background-color: #{{server.icon_color}}; display: block; width: 10px; height: 10px"></div>
            </li>
        </ul>   
    </div>
<div >

currently

使用上面的代码,我正在使用{{row}}正确显示客户名称(图片中的黑条)但是我无法显示customerobject[1]的值(目前每个都相同)一)因此这是我需要做的。因此,test456会被customerobject[1]

中的相应值替换

请告诉我是否需要更好地解释,如果我的问题不清楚或太宽泛。

1 个答案:

答案 0 :(得分:0)

所以我设法解决了我自己的问题,显然可以使用来自customerobject [0]的{{row}}元素作为参数,这个实现的唯一缺点就是我需要添加一行为每个服务器。因为在我的情况下,它们可能永远不会超过4,这不是一个大问题。但是,如果你自己面临类似的问题,需要考虑的事情。

{{customerObject [1] [列] [0] .servername}}

this repeats for each in customers

所以对于上面显示的这3个,你需要3行,每个服务器1行。

                <p ng-show="customerObject[1][row][0].servername != ' '" class="mapsColor">{{customerObject[1][row][0].servername}}</p>
                <p ng-show="customerObject[1][row][1].servername != ' '" class="mapsColor">{{customerObject[1][row][1].servername}}</p>
                <p ng-show="customerObject[1][row][2].servername != ' '" class="mapsColor">{{customerObject[1][row][2].servername}}</p> 

我知道,丑陋如同地狱,但是因为我能想出一个更好的解决方案,所以如果有人知道一个更好的方法,那就不得不这样做了。