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