这应该是一个相当直接的问题,但我很难过。
我有一项服务可以进行 http 调用,然后对结果进行广泛的后处理。我希望将处理后的结果分配给 $scope.variable 并在几个不同的视图中使用。问题是每个视图都有单独的控制器,但我不希望每个控制器调用服务以从资源中获取相同的数据并为每个控制器进行一次后处理。
超级简化我有这个:
myModule.factory ('Data', function ($http, $q) {
getData: $http.get...
processData: this.getData().success(function(data){
... do a ton of cpu intensive processing ...
return processed_data
ctrl1 = function(Data,$scope) {
$scope.data = Data.processData()
}
ctrl2 = function(Data,$scope) {
$scope.data = Data.processData()
etc...
}
显然,我只想设置一次 $scope.data = Data.processData() 并让它填充到所有控制器中。就目前而言,每个控制器都独立调用服务,这会产生不必要的流量和 CPU。
我确定有一些简单的东西,但我无法弄清楚。是否有某种方法可以创建一个“超级”范围,我可以在其中定义所有控制器范围共有的变量?
谢谢,