文字列の配列をオブジェクトの配列に変換するフィルターを書きたいです (これは、元の問題を簡略化したものです)。したがって、['a', 'b']
は になり[{id: 'a', label: 'A'}, {id: 'b', label: 'B'}]
ます。
ただし、私の解決策では、無限のダイジェスト サイクル エラーが発生します。
angular.module('MyTestApp', []).filter('propertiesWithLabels', function() {
return function(properties) {
var propertiesWithLabels = [];
for (var i = 0; i < properties.length; i++) {
propertiesWithLabels.push({
id: properties[i],
label: properties[i].toUpperCase()
});
}
return propertiesWithLabels;
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="MyTestApp">
<div ng-init="myObject = {properties: ['a','b','c']}">
<ul>
<li ng-repeat="property in myObject.properties | propertiesWithLabels">
{{ property.id }}: {{ property.name }}
</li>
</ul>
</div>
</div>
この質問のようにモデルを変更しません$rootScope:infdig エラーはフィルターによって引き起こされますか? . なぜこのエラーが発生するのですか?