Okay I found a way to do this but it has multiple problems. Firstly it is only visual, this means that I do not explicitly set field data or alter your items in a way that the previous answer does. Additionally I do not know how my solution interacts with different sorting or other ngTable functions.
Here is the code :
var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
$scope.myData = [{name: "Moroni", age: 50},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 27},
{name: "Nephi", age: 29},
{name: "Enos", age: 34}];
$scope.gridOptions = {
data: 'myData',
columnDefs: [
{displayName:'#', cellTemplate: '<div>{{$parent.$index + 1}}</div>'},
{field: 'name', displayName: 'Name'},
{field:'age', displayName:'Age'}]
};
});
This is a purely cosmetic solution, row numbers are added in a new column all the way on the left similar to how it works in jquery. This has the advantage that you don't have to alter your data or items just to enable a row number but comes with the problems I mentioned before.
Here ia a plnkr displaying my solution.