Can I do a stable sort in AngularJS?

I've followed a tutorial to add table sorting to an AngularJS app but I'm disappointed that the sort is not stable, it seems to always start with the source data and sort it only by the key given. I want to re-sort the contents of the table, not the source data. Is this possible?

That is, if my source data is:

|ColA|ColB|ColC|
|A|1|Z|
|B|1|Y|
|C|2|X|

The initial presentation shows that order. If the user clicks column Col1, there's no change. Click again and the rows reverse:

|ColA|ColB|ColC|
|C|2|X|
|B|1|Y|
|A|1|Z|

Now if I click on ColB, what I want is:

|ColA|ColB|ColC|
|B|1|Y|
|A|1|Z|
|C|2|X|

Y and Z are still in order if the sort is stable. What I get is:

|ColA|ColB|ColC|
|A|1|Z|
|B|1|Y|
|C|2|X|

Z and Y are in the order of the source data. (I made this example up, it may not be exactly what happens but I hope it illustrates what I'm trying to do.)