AngularJS:如何观察服务变量?

AngularJS:如何观察服务变量?

我有一项服务,比如说:

factory('aService', ['$rootScope', '$resource', function ($rootScope, $resource) {
  var service = {
    foo: []
  };

  return service;}]);

我想用foo若要控制以HTML呈现的列表,请执行以下操作:

<div ng-controller="FooCtrl">
  <div ng-repeat="item in foo">{{ item }}</div></div>

以便控制器检测到aService.foo更新后,我把这个模式拼凑在一起,将一个服务添加到控制器的$scope然后使用$scope.$watch():

function FooCtrl($scope, aService) {                                                                                                                              
  $scope.aService = aService;
  $scope.foo = aService.foo;

  $scope.$watch('aService.foo', function (newVal, oldVal, scope) {
    if(newVal) { 
      scope.foo = newVal;
    }
  });}

这感觉很长,我在每个使用服务变量的控制器中都重复了它。是否有更好的方法来完成对共享变量的监视?


汪汪一只猫
浏览 536回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

AngularJS