首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AngularJS:如何看服务变量?

AngularJS:如何看服务变量?

提问于 2017-12-25 17:36:41
回答 2关注 0查看 469

有一个服务:

代码语言:txt
复制
factory('aService', ['$rootScope', '$resource', function ($rootScope, $resource) {
代码语言:txt
复制
  var service = {
代码语言:txt
复制
    foo: []
代码语言:txt
复制
  };
代码语言:txt
复制
代码语言:txt
复制
  return service;
代码语言:txt
复制
}]);

我想foo用来控制在HTML中呈现的列表:

代码语言:txt
复制
代码语言:txt
复制
<div ng-controller="FooCtrl">
代码语言:txt
复制
  <div ng-repeat="item in foo">{{ item }}</div>
代码语言:txt
复制
</div>

为了让控制器检测何时aService.foo更新我已经拼凑在一起这种模式,我添加一个服务控制器$scope,然后使用$scope.$watch():

代码语言:txt
复制
function FooCtrl($scope, aService) {                                                                                                                              
代码语言:txt
复制
  $scope.aService = aService;
代码语言:txt
复制
  $scope.foo = aService.foo;
代码语言:txt
复制
代码语言:txt
复制
  $scope.$watch('aService.foo', function (newVal, oldVal, scope) {
代码语言:txt
复制
    if(newVal) { 
代码语言:txt
复制
      scope.foo = newVal;
代码语言:txt
复制
    }
代码语言:txt
复制
  });
代码语言:txt
复制
}

这感觉是长期的,我已经在使用服务变量的每个控制器中重复它。有没有更好的方法来完成观看共享变量?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档