2017-07-14 61 views
-5

我的模板代码:如何为以下JSON编写ng-repeat?

 <tr ng-repeat="row in dataList"> 
      <tr ng-repeat-start="row in dataList[$index].data" ng-if="dataList.data.[columnDisplayData[$index].colName].showRow"> 

JSON数据对象

{ 
    "reportId":1, 
    "tableData": 
    [ 
     { 
     "data":{ 
      "data":[ 
       { 
        "Comp Set(Group)":{ 
        "showRow":true, 
        "row":{ 
         "sunday":7.1, 
         "saturday":19.1, 
         "total":"19.3", 
         "tuesday":23.4, 
         "weekend":"19.9", 
         "weekday":"19.0", 
         "friday":20.7, 
         "thursday":23.2, 
         "wednesday":23.4, 
         "monday":17.9 
        } 
        }, 

        "%C(Transient)C":{ 
        "showRow":true, 
        "rowName":"per_C_ransient_C", 
        "row":{ 
         "sunday":"-15.5", 
         "saturday":"18.9", 
         "total":"-4.5", 
         "tuesday":"-14.4", 
         "weekend":"12.6", 
         "weekday":"-11.4", 
         "friday":"6.4", 
         "thursday":"2.1", 
         "wednesday":"-21.2", 
         "monday":"-7.8" 
        } 
        } 
       } 
      ] 
     }, 
     "hotelName":"XYZ" 
     }, 

    ... 

    ] 
} 

我想用ng-repeat数据阵列后来ng-repeathotelName的。 首先,ng-repeathotelname,然后数据相同的jsonObject。 请给我建议。

我期望的格式应该是这样的,在下面的表中提到,

hotelName    
Sunday Monday Tuesday Wednesday Thursday Friday Saturday Weekday 
data data  

hotelName       
Sunday Monday Tuesday Wednesday Thursday Friday Saturday Weekday 

hotelName       
Sunday Monday Tuesday Wednesday Thursday Friday Saturday Weekday 
+3

请花些时间阅读[ask]和[mcve] – charlietfl

+0

星期日,星期二,星期二等你想要什么值,因为它在你的JSON中随处可见。看到星期日,星期一等实例是存在于每个键像My Property(Group),Comp Set(Contract),%C(Transient)C等等......你想要哪一个? – Vivz

+0

首先,应该在hotelName上重复ng,然后在“data”jsonObj和d agaain上应该去找另一个jsonObj。 –

回答

0

使用此功能在控制器和调用$scope.arrng-repeat


$ scope.arr =新的Array() ; $ scope.setData =函数(){

for(i = 0 ; i < $scope.dataList.tableData.length ; i++){ 


    for(j= 0 ; j < $scope.dataList.tableData[i].data.data.length ; j++){ 
     $scope.arr[i] ={"hotelName":$scope.dataList.tableData[i].hotelName , "days":$scope.dataList.tableData[i].data.data[j]['Comp Set(Group)'].row}; 
    } 
} 

}


查看:

酒店 周一周二 周三 周四 周五 周六周日 总 周末 平日
{{data.hotelName}} {{data.days.monday}} {{data.days.tuesday}} {{data.days.wednesday {{data.days.thursday}} {{data.days.friday}} {{data.days.saturday}} {{data.days.sunday}} {{data.days.total }} {{data.days.weekend}} {{data.days.weekday}}
+0

你应该修复你的一些格式。否则答案看起来不错,应该在理论上工作。我希望答案能够解决,他们能够与项目一起移动。 –

+0

非常感谢Avnesh,但是关于ng-repeat在html上呢? –

+0

@ShubhamDeshmukh现在检查它...我没有做出什么改变。 –

0

你在ng-repeat中有点误会。

您可以传递给后面的ng-repeat,已经从前一个ng-repeat解析的对象;所以如果你有这样的:

<tr ng-repeat="d in data"> 
    <td ng-repeat="(key, value) in d"> 
     {{key}}: {{value}} 
    </td> 
</tr> 

表示:“嘿角,在第一ng-repeat给我谁是$scope.data的所有对象,并创建一个tr

$scope.data = { 
    key1: {}, 
    key2: {} 
} 

在HTML写这对于每一个;然后,在第二个ng-repeat给我所有的钥匙和对象的相关值,你给我在第一个ng-repeat和创建td为每个“

无论如何,要达到您的目标,您需要在表格中嵌入一些表格,如plunkr。通过这种方式,你可以用你的json获得你想要的视图。