私は次のようng-repeat
に考えています。
<div ng-repeat="field in fields">
{{field.someValue}}
</div>
のコンテンツは、ビューに渡さfields
れる前にある必要があります。preprocessed
したがって、コントローラーには、オブジェクトをループしてfields
いくつかのキーを追加し、いくつかのキーを削除する関数があります。単純化された擬似コードは次のようになります
myApp.controller('FieldsController', function($scope) {
$scope.fields = loadFieldsFromResource();
var i=0;
for(i = 0; i < $scope.fields.length; i++) {
if ($scope.fields[i].someProperty > maxValue) {
// Remove an item from the array
$scope.fields.splice(i,1);
}
else if ($scope.fields[i].someProperty < minValue) {
// Add an item to the array
$scope.fields.splice(i,0,createNewField());
}
}
})
これで正しい出力が生成されますが、10 $digest() iterations reached.
エラーが発生します。どうすればそれを機能させることができますか?( init で行う前処理のみが必要です)。
fields
withangular.copy()
を一時変数にコピーしようとしました。前処理を行ってから変数に割り当てfields
ますが、それでも同じエラーが発生します。
preprocessing
ビューに与える前に、Angularウォッチの外でこの種のことを行う方法はありますか?