无法使用angular js方法动态更改页面

时间:2012-08-14 14:53:32

标签: angularjs

这是我页面上的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不支持角度......

2 个答案:

答案 0 :(得分:6)

由于AngularJS不会不断地为更改进行池化,而只是刷新模板以响应某些事件,因此数据不会自动更新。您可以查看此帖子:How does data binding work in 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/

答案 1 :(得分:0)

var updateTime = function () {
    $scope.currentTime = new Date();
    $timeout(updateTime, 1000);
};
updateTime();