2015-12-20 40 views
0

我一直在试图获取嵌套json数据列内。 JSON的结构是:Angularjs ui.grid显示嵌套行

[{ 
    "ratings": [{ 
      "rating": "Detractor", 
      "employees": [{ 
       "empName": "Pavan", 
       "quarters": [{ 
        "quarterName": "q1 2015", 
        "weeks": [{ 
          "weekName": "week1", 
          "month": "January", 
          "points": [{ 
           "0": "point1" 
          }, { 
           "1": "point2" 
          }] 
         } 
         , { 
          "weekName": "week2", 
          "month": "January", 
          "points": [{ 
           "0": "point1" 
          }, { 
           "1": "point2" 
          }] 
         }, { 
          "weekName": "week3", 
          "month": "January", 
          "points": [{ 
           "0": "point1" 
          }, { 
           "1": "point2" 
          }] 
         } 
        ] 
       }, { 
        "quarterName": "q2 2015", 
        "weeks": [{ 
          "weekName": "week4", 
          "month": "January", 
          "points": [{ 
           "0": "point1" 
          }, { 
           "1": "point2" 
          }] 
         } 
         , { 
          "weekName": "week5", 
          "month": "January", 
          "points": [{ 
           "0": "point1" 
          }, { 
           "1": "point2" 
          }] 
         }, { 
          "weekName": "week6", 
          "month": "January", 
          "points": [{ 
           "0": "point1" 
          }, { 
           "1": "point2" 
          }] 
         } 
        ] 
       }] 
      }] 
     } 
    ] 
}] 

输出应该有评级一列,在未来相应的员工,并在第三列的点。 我找到了一个解决方案here,但它只处理一个级别,我无法将其扩展到多个级别。

我需要显示每周数据。

Expected Output

+0

什么你问,因为你有你的实体之间的一些1对多的关系尚不清楚。你能用输出的例子来说清楚吗? – imbalind

+0

@ imbalind-为预期输出添加了一张图片。 –

+0

你是否总是有2个季度,每个季度恰好3周或者是季度和周末之间的关系是动态的? – imbalind

回答

0

有访问嵌套对象在UI栅,一般来说没有问题。

在你的情况下,问题似乎与你有一个动态结构的事实更相关。

在UI的网格可以将值分配给一个柱用含有该值的完整路径的字符串,例如:

  • 假设你assing评分子阵列至gridOptions.data,的field值为week1week2week4将分别为:
    • 'employees[0].quarters[0].weeks[0].points[0]'
    • 'employees[0].quarters[0].weeks[1].points[0]'
    • 'employees[0].quarters[1].weeks[0].points[0]'

现在,还要加上那个星期,宿舍的数量是不固定的,你会发现,有以编程方式涉及的数量没有直接的方法每星期和四分之一阵列所需的指数。

我认为处理这个问题的最好方法是遍历原始数据,然后构建一个更适合网格的新JSON。

在伪代码,你可以做这样的事情:

initialize results array 
iterate through ratings 
    create new empty object (current_object) 
    add current_object to results array 
    iterate through employees 
    iterate through quarters 
     iterate through weeks 
     add value for i-th week as week_i to current_object 
+0

你能提供一个plunk。这真的很有用。谢谢 –