Look here ... my ui-table handler could do the job for you ... and many other tasks.
I use it for ALL my tables ... the API is not perfect (who calls an argument "object"?) ... but at least there is a little documentation. If I rework the API I have to rework many flows .... and no time for that.