Angular: Ordering Child Rows
http://angularjs.org/
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
<div ng-controller="MyCtrl" ng-style="{color: myColor}">
<table class="table table-striped table-hover table-responsive">
<thead>
<th>Código</th>
<th>Descrição</th>
<th>Código Pai</th>
</thead>
<tbody>
<tr ng-repeat="natureza in naturezas | filter:filterExpression | orderBy:'codNat'" ng-click="toggleCustom(natureza)">
<td>{{natureza.codNat}}</td>
<td>{{natureza.descrNat}}</td>
<td align="right">{{natureza.codNatPai}}</td>
</tr>
</tbody>
</table>
</div>
JavaScript
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
var codNatPai = [];
$scope.naturezas = [
{
codNat: '100000',
descrNat: 'Natureza 1',
codNatPai: '0'
},
{
codNat: '200000',
descrNat: 'Natureza 2',
codNatPai: '0'
},
{
codNat: '110000',
descrNat: 'Natureza 1.1',
codNatPai: '100000'
},
{
codNat: '120000',
descrNat: 'Natureza 1.2',
codNatPai: '100000'
},
{
codNat: '210000',
descrNat: 'Natureza 2.1',
codNatPai: '200000'
},
{
codNat: '220000',
descrNat: 'Natureza 2.2',
codNatPai: '200000'
},
{
codNat: '111000',
descrNat: 'Natureza 1.1.',
codNatPai: '110000'
}
];
$scope.filterExpression = function(i) {
return (i.codNatPai == 0 || codNatPai.indexOf(i.codNatPai)>-1 );
}
$scope.custom = true;
$scope.toggleCustom = function(i){
var n = codNatPai.indexOf(i.codNat);
if (n<0) {
codNatPai.push(i.codNat);
} else {
codNatPai.splice(n);
}
console.log(n,codNatPai);
}
$scope.buscar = function(i){
alert("Selected: " + i.codNat)
}
}