Using groupBy filter with ng-repeat in template on iOS9 iPhone4 causes infinite repeating
I found that when using the groupBy filter within the template with an ng-repeat that iPhone4 on iOS9 would infinitely repeat the data, causing it to crash the browser if there was a particularly large set of data. This behaviour didn't present on any other devices I was testing (desktop Chrome, FF, IE9+, Android device using Chrome browser) including an iPhone 4 on iOS8.
An example of the template code I was using is as follows (where groupingMonth is an attribute of data):
<div ng-repeat="group in data | groupBy: 'groupingMonth' | toArray:true | orderBy: '$key': true">
I ended up being able to resolve the problem for my current purposes by moving the filters into the controller, eg:
$scope.groupedData = $filter('orderBy')($filter('toArray')($filter('groupBy')($scope.data, 'groupingMonth'), true), '$key', true);
<div ng-repeat="group in groupedData">
Either the groupBy filter shouldn't be used in the ng-repeat and perhaps something documented to say as such would help others, or something has fundamentally changed with iOS9 which causes this behaviour regardless of how the filter is written. I investigated as much as I could but wasn't able to pin down why this behaviour presents in iOS9 and not iOS8. I used angular-filter v0.5.5 and tried upgrading to 5.5.8 with the same behaviour seen on both.