Angular アプリで小さなデジタル「時計」を更新する必要があります。コントローラーで次のコードを使用しています。
$scope.time = new Date();
var interval = $timeout(function updateTime() {
console.log("Update time");
$scope.time = new Date();
$scope.formattedTimeValue = WBUtils.formattedTime($scope.time);
interval = $timeout(updateTime, 1000);
}, 1000);
formattedTimeValue
式を使用して、html の小さな divに表示し{{formattedTimeValue}}
ます。また、フィルターを使用してデータをフォーマットする ng-repeat ディレクティブもあります。私の問題は、これらのフィルターが毎秒再評価されることです。理由がわかりません。間隔関数を次のように変更しましたが、フィルターは引き続き再評価されます。
var interval = $timeout(function updateTime() {
console.log("Update time");
interval = $timeout(updateTime, 1000);
}, 1000);
誰かが ng-repeat の各オブジェクト (変更されていない) に対して私のフィルターが毎秒評価される理由を説明してもらえますか? 現在、フィルタは次のようになっています。
module.filter('formatLogRecord', function () {
return function (log) {
console.log("Filtering");
return "";
}
});