コレクション内のすべてのオブジェクトのプロパティ IsSelected が false に設定されている場合は常に、ボタンを無効にしたいと考えています。
プロパティが変更されたときにアクションを実行するためにコレクションを詳細に監視するには、次のようにします。
$scope.$watch('messages', function (i) {
//do something
}, true);
しかし、コレクションが大きすぎて (実際には 2 つの要素しかありませんが、これらは大きなオブジェクトです)、「メモリ不足」の例外が発生します。
それで、代わりに何をすべきですか?
[編集]
次の @boxed 提案:
$scope.$watch(function () {
return $($scope.messages).map(function () {
return this.IsSelected;
});
}, function (e) {
//do something
});
それでも非常に遅く、エラーが発生します。
- JavaScript の実行エラー: 10 回の $digest() 反復に達しました。中止します!