Reputation: 53
I am trying to use ng-repeat over this array of array of objects, but I am unable to get to display the correct name-value pairs.
var names = [
[{name: "Name 1", age: 25}, {name: "Name 2", age: 20}],
[{name: "Name 3", age: 50}, {name: "Name 4", age: 40}],
[{name: "Name 5", age: 20}, {name: "Name 6", age: 40}]
];
This works to display the entire array of array of objects:
<p ng-repeat="name in names"></p>
But the following to display the name doesn't:
<p ng-repeat="name in names">
<p ng-repeat="n in name">
{{n.name}}
</p>
</p>
I know I am for sure missing something simple.
Upvotes: 1
Views: 90
Reputation: 3090
Seem like nested p tag causes ng-repeat messes up beginning/ending tag
If you change the inside p tag to span or div, it works:
<p ng-repeat="name in names">
<span ng-repeat="n in name">
{{n.name}}
</span>
</p>
Upvotes: 1
Reputation: 11756
If you can change your multi array to use a array of objects with an array of items like below:
var names = [
{items:[{name: "Name 1", age: 25}, {name: "Name 2", age: 20}]},
{items:[{name: "Name 3", age: 50}, {name: "Name 4", age: 40}]},
{items:[{name: "Name 5", age: 20}, {name: "Name 6", age: 40}]}
];
<p ng-repeat="name in names">
<p ng-repeat="n in name.items">
{{n.name}}
</p>
</p>
Upvotes: 0