Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AngularJS ng-repeat array of arrays

Is it possible to use ng-repeat with an array of arrays?

Here's my view:

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

Here's my controller:

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

Here's my Plunker:
http://plnkr.co/edit/b6vRVpUKkhPANNVXkkJL?p=preview

How can I output:

  • 1
  • 2
  • 3


  • 4
  • 5
  • 6


  • 7
  • 8
  • 9
like image 259
Ryan Avatar asked Jul 31 '15 14:07

Ryan


2 Answers

Your problem lies with this line:

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

item.items is undefined because item is an array.

You should enumerate item instead of item.items:

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

Here's a working Plunk.

like image 96
Alex Booker Avatar answered Oct 18 '22 08:10

Alex Booker


You almost aleady have the result. It's just a little mistake in your second ng-repeat.

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

You are already in item in your second ng-repeat you don't need item.items.

There is the updated plunker : http://plnkr.co/edit/aLx05WWzFRVrocmXwr12?p=preview

like image 4
Pierre-Alexandre Moller Avatar answered Oct 18 '22 08:10

Pierre-Alexandre Moller