AngularJS Example

HTML

<div ng-app="app">
    <div ng-controller="MainController">
        <select data-ng-model="numColumns.length" data-ng-options="columnValue as columnValue for columnValue in columnValues"></select>
        <table border="1">
            <tr data-ng-repeat="object in (objects | myFilter:numColumns.length)">
                <td data-ng-repeat="column in numColumns">{{ objects[$parent.$index * numColumns.length + $index].entry }}</td>
            </tr>  
        </table>
    </div>
</div>

CSS

table td{
    padding:2px 5px;
}

JavaScript

angular.module('app', [])
    .filter("myFilter", function(){
        return function(input, columns){
            var filtered = [];
            for(var x = 0; x < input.length; x+= columns){
                 filtered.push(input[x]);   
            }
            return filtered;
        }
    });
;

function MainController($scope){
    $scope.columnValues = [];
    for(var x = 0; x < 10; x++){
         $scope.columnValues.push(x + 1);   
    }
    $scope.objects = [ ];
    for(var x = 65; x < 91; x++){
        $scope.objects.push({
            entry: String.fromCharCode(x)
        });
    }
    
    $scope.numColumns = [];
    $scope.numColumns.length = 3;
}