1

これは私のページのAngularJS関数です:

function DateCtrl($scope) {

        $scope.returndate = function () {

            return Date.now();
        }

    }

マークアップは次のとおりです。

<html ng-app>
<body>    
<div id = "date" class = "stats" ng-controller = "DateCtrl">
            <span>Date:</span><div id = "noedate">{{returndate()}}</div>
    </div>
</body>
</html>

#nowdateデータバインディングのおかげで、返される日付は1秒ごとに変わると予想されますが、そうではありません。ここで何が悪いのか誰か知っていますか?

私はフィドルを提供しますが、jsfiddleはまだangularをサポートしていません...

4

2 に答える 2

6

AngularJSは変更を常にプールするわけではなく、特定のイベントに応答してテンプレートを更新するだけなので、データは自動的に更新されません。この投稿を確認できます:AngularJSでのデータバインディングはどのように機能しますか?角度の内部動作の詳細については。

一定期間後に特定の値を更新する場合は、$ timeoutサービス(http://docs.angularjs.org/api/ng.$timeout)を使用してください。

実際、$watchと$timeoutの組み合わせを使用して、AngularJSでクロックを実行するのは非常に簡単です。

$scope.time = new Date();  
$scope.$watch('time', function(){
    $timeout(function(){
        $scope.time = new Date();
    },1000);
});

完全なjsFilldeは次のとおりです。http://jsfiddle.net/pkozlowski_opensource/f5ApP/1/

于 2012-08-14T15:19:54.507 に答える
0
var updateTime = function () {
    $scope.currentTime = new Date();
    $timeout(updateTime, 1000);
};
updateTime();
于 2013-04-24T13:08:19.997 に答える