16

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

2 Answers 2

16

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.

Sign up to request clarification or add additional context in comments.

1 Comment

does someone has an answer for Angular7? ng-repeat does nothing, I think the syntax has changed but I can't find anything.
4

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.