Warum wird die Funktion ng-style zweimal angewendet?

Ich habe eine eckige App wie:

angular.module('ngStyleApp', [])

.controller('testCtrl', function($scope) {
   $scope.list = [1,2,3];
   $scope.getStyles = function(index) {
       console.log('getting styles for index ' + index);
       return {
           color: 'red'
       };
   };
});

mit dem entsprechenden Markup:

<div ng-app="ngStyleApp">
    <ul ng-controller="testCtrl">
        <li ng-repeat="value in list" ng-style="getStyles($index)">
            {{value}}
        </li>
    </ul>
</div>

Die sichtbare Ausgabe besteht erwartungsgemäß aus drei roten Listenelementen. Die Anweisung wird jedoch insgesamt sechsmal in der Konsole protokolliert, was bedeutet, dass die Ansicht zweimal gerendert wird:

getting styles for index 0
getting styles for index 1
getting styles for index 2
getting styles for index 0
getting styles for index 1
getting styles for index 2

Warum

JSFiddle

Antworten auf die Frage(2)

Ihre Antwort auf die Frage