在this first example中,每当userService方法sessionStatus()的返回值发生变化时,视图都会更新。
但是如果更改了the second example中的sessionStatus
方法:
sessionStatus: function(){
return Date.now();
},
它不再刷新"生活"在视图中。我希望在视图中看到以毫秒为单位的日期。
是因为the second example,sessionStatus
方法返回的值是否会变快?为什么不更新视图?
答案 0 :(得分:1)
该值未更新,因为没有AngularJS事件导致摘要周期:
添加一个ng-click
的按钮,每次点击该值都会更新:
<body ng-app="myServiceModule">
<div id="simple" ng-controller="MyController">
<p>I would expect the number bellow to be ticking</p>
<p>Session Status: {{sessionStatus()}}</p>
</div>
<button ng-click="">Update</button>
</body>
点击 Update 按钮,会启动AngularJS摘要周期并更新会话状态。
或使用$interval
服务启动重复摘要周期:
angular.
module('myServiceModule', []).
controller('MyController', function ($scope, $interval, userService) {
$scope.sessionStatus = function(){
return userService.sessionStatus();
};
$interval(null, 250);
})
在此示例中,$interval
语句每250毫秒启动一个摘要周期。