Массив массивов AngularJS ng-repeat

Можно ли использовать ng-repeat с массивом массивов?

Здесь мое мнение:

<div ng-repeat="item in items">
  <p>{{item}}</p>
  <ul>
    <li ng-repeat="i in item.items">{{i}}</li>
  </ul>
</div>

Здесь мой контроллер:

  var app = angular.module('plunker', []);
  app.controller('MainCtrl', function($scope) {
    $scope.items = [
      [1, 2, 3],
      [4, 5, 6],
      [7, 8, 9]
    ]
  });

Вот мой Плункер:
http://plnkr.co/edit/b6vRVpUKkhPANNVXkkJL?p=preview

Как я могу вывести:

  • 1
  • 2
  • 3


  • 4
  • 5
  • 6


  • 7
  • 8
  • 9

Ответы

Ответ 1

Ваша проблема заключается в этой строке:

<li ng-repeat="i in item.items">{{i}}</li>

item.items не undefined потому что item является массивом.

Вы должны перечислить item вместо item.items:

<body ng-controller="MainCtrl">
  <div ng-repeat="item in items">
    <ul>
      <li ng-repeat="i in item">{{i}}</li>
    </ul>
  </div>
</body>

Здесь работает Plunk.

Ответ 2

У вас почти есть результат. Это всего лишь небольшая ошибка во втором ng-repeat.

<div ng-repeat="item in items">
  <p>{{item}}</p>
  <ul>
    <li ng-repeat="i in item">{{i}}</li>
  </ul>
</div>

Вы уже находитесь в элементе во втором ng-repeat вам не нужны item.items.

Существует обновленный плункер: http://plnkr.co/edit/aLx05WWzFRVrocmXwr12?p=preview