Angular Expandable Table Rows
by lekhrajpanjwani
HTML
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-animate.min.js"></script>
<div ng-controller="itemsController" class="box">
<table border="1">
<tr ng-repeat-start="group in groups">
<td>
{{group.name}}
<em>{{expanded}}</em>
</td>
<td>Values: {{group.values.length}}</td>
<td>lekhraj panjwani
<button type="button" ng-click="expanded =! expanded">
Expand
</button>
</td>
</tr>
<tr ng-repeat-end ng-show="expanded">
<td colspan="3">
<ul>
<li ng-repeat="value in group.values">
{{value}}
</li>
</ul>
</td>
</tr>
</table>
</div>
CSS
html, body{
font-family: sans-serif;
}
.box {
border: 1px solid gray;
margin: 0.5em;
padding: 0.5em;
}
JavaScript
var app = angular.module('app', ['ngAnimate']);
app.controller('itemsController', function( $scope ) {
$scope.groups = [
{name:'Letters', values:['a','b','c']},
{name:'Odd Numbers', values:[1,3,5,7]},
{name:'Even Numbers', values:[2,4,6,8]}
];
});