Angular: Empty Fiddle
http://angularjs.org/
HTML
<script src="http://code.angularjs.org/angular-1.0.1.js"></script>
<div ng-controller="Controller">
<table border="1" id="mytable" >
<thead>
<tr>
<th ng-repeat="(column,val) in columns"><a ng-click="sort_by()">
<i>{{column}}</i>
</a>
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="val in datas| orderBy:sortingOrder:reverse">
<td ng-repeat="(column,v) in columns">{{val[column]}}</td>
</tr>
</tbody>
</table>
</div>
JavaScript
var app = angular.module('form-example1', []);
app.controller("Controller", ['$scope', function($scope){
$scope.sortingOrder = '';
$scope.reverse = true;
$scope.datas = [
{workname: 'France', teamname: 'Team PQL', placename: 'Place 1', serviceOne: 'ABC 1', serviceTwo: 'DEF 1', serviceThree: 'GHI 1', leadername: 'MN1', ColumnName:[{"Camera name","Begin Time","End Time","Day 1","Day 2","Day 3","Day 4","Day 5","Day 6","Day 7","Day 8","Day 9","Day 10"}]}
];
$scope.getColumns = function()
{
//console.log( $scope.datas[0].others[0]);
$scope.datas.resultsOrder = new Array();
for ( var i = 0; i < $scope.datas.length; i++)
{
for ( var j = 0; j < $scope.datas[i].ColumnName.length; j++)
{
if (countInstances($scope.datas.resultsOrder, $scope.datas[i].ColumnName[j].id) < countInstances(
$scope.datas[i].ColumnName, $scope.datas[i].ColumnName[j].id)){
$scope.datas.resultsOrder.push($scope.datas[i].ColumnName[j].id);
}
}
}
$scope.datas.resultsOrder.sort(function(a, b){
return a.localeCompare(b);
});
return $scope.datas.resultsOrder;
}
countInstances = function(array, string)
{
var numOfTrue = 0;
for ( var i = 0; i < array.length; i++){
if (array[i] === string || array[i].id === string){
numOfTrue++;
}
}
return numOfTrue;
}
$scope.getRows = function(others)
{
var row = new Array($scope.datas.resultsOrder.length);
var indexFound = [];
var found = false;
for ( var i = 0; i < row.length; i++)
{
found = false;
for ( var j = 0; j < others.length; j++)
{
if (others[j].id == $scope.datas.resultsOrder[i] && !found && -1 == indexFound.indexOf(j))
{
row[i] = others[j].value;
indexFound.push(j);
found = true;
}
}
if (found == false)
{
row[i] = "";
}
}
return row;
}
$scope.sort_by = function(newSortingOrder) {
console.log(newSortingOrder);
if...