如何绑定到服务方法?

时间:2016-10-16 12:21:26

标签: angularjs data-binding

this first example中,每当userService方法sessionStatus()的返回值发生变化时,视图都会更新。

但是如果更改了the second example中的sessionStatus方法:

sessionStatus: function(){
  return Date.now();
},

它不再刷新"生活"在视图中。我希望在视图中看到以毫秒为单位的日期。

是因为the second examplesessionStatus方法返回的值是否会变快?为什么不更新视图?

1 个答案:

答案 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摘要周期并更新会话状态。

DEMO on PLNKR

或使用$interval服务启动重复摘要周期:

  angular.
   module('myServiceModule', []).
    controller('MyController', function ($scope, $interval, userService) {
      $scope.sessionStatus = function(){
       return userService.sessionStatus();
      };

      $interval(null, 250);

    })

在此示例中,$interval语句每250毫秒启动一个摘要周期。

DEMO on PLNKR