1

这是我页面上的 Angular JS 函数:

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每秒更改一次,但事实并非如此。有谁知道这里有什么问题?

我会提供一个小提琴,但 jsfiddle 还不支持角度...

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 回答