2016-04-16 2 views
0

У меня есть массив, где каждый объект имеет поле, содержащее объект с массивами, например:Показать массив на странице

var objects = [{ 
     'id':'1', 
     'name': 'Joe', 
     'last': 'Doe', 
     'additionalField': { 
      "a":[1,2,3], 
      'b':[4,5,6], 
      'c':[7,8,9], 
      'd':[7,8,9], 
     }, {...}, ... 
}] 

Как я могу represet additionalField в шаблоне? Теперь я транспонировать матрицу массивов, и показать, как:

<tr ng-repeat="field in transposed"> 
    <td ng-repeat="element in field"> 
     <a ng-click="someAction(elment.name, elment.value)">{{element.value}}</a> 
    </td> 
</tr> 

Когда я транспонировать матрицу, я создаю объекты, такие как:

var transposed = [ 
    [{'name': 'a', 'value': '1'}, 
    {'name': 'b', 'value': '4'}, 
    {'name': 'c', 'value': '7'}], 
    [{'name': 'a', 'value': '2'}, 
    {'name': 'b', 'value': '5'}, 
    {'name': 'c', 'value': '8'}], 
] 

Но это кажется слишком сложным. Вы знаете, как я могу сделать это просто? Я имею в виду, могу ли я сделать это без транспонирования? для получения таблицы, как:

1 4 7 7 
2 5 8 8 
3 6 9 9 

ответ

1

Если объекты массива, как:

$scope.objects= [{ 
     'id':'1', 
     'name': 'Joe', 
     'last': 'Doe', 
     'additionalField': { 
      "a":[1,2,3], 
      'b':[4,5,6], 
      'c':[7,8,9], 
      'd':[7,8,9], 
     } 
}]; 

и хотите показать:

1 4 7 7 
2 5 8 8 
3 6 9 9 

тогда можно попробовать, как:

<tr ng-repeat="data in objects"> 
    <td ng-repeat="(key, value) in data.additionalField"> 
     <p ng-repeat="item in value">{{item}}</p> 
    </td> 
</tr> 

Plunker Demo

+0

Спасибо. Это решение для меня хорошо. – Nikitka

0

Вы можете перенести вашу матрицу следующим образом:

var transposed = [ 
    [{'a': '1'}, 
    {'b': '4'}, 
    {'c': '7'}], 
    [{'a': '2'}, 
    {'b': '5'}, 
    {'c': '8'}] 
] 

И показать на странице, как:

<tr ng-repeat="field in transposed"> 
    <td ng-repeat="value in field"> 
     <a ng-click="someAction($index, value)">{{value}}</a> 
    </td> 
</tr> 
+0

Да, вы правы, но я не хочу делать Транспонирование. Я могу подсчитать количество объектов, и это займет время, если я сделаю это для каждого объекта. – Nikitka