2015-07-28 138 views
2

共享数据之间的共享过滤后的数据是一个主题在这里讨论了很多,我通过创建一个factory保存功能调用我们的API,当然还有我们的返回数据解决它。angularJS:控制器之间的控制器

angular.factory('polygonService', ['$resource', polygonService]); 

function polygonService($resource) { 


    var service = { 

     data: [], 

     api: $resource(
      'url', 
      { 
       cityID: '@id' 
      }, 
      { 
       get: { 
        method: 'JSONP', 
        params: { 
         callback: 'JSON_CALLBACK' 
        } 
       } 
      } 
     ) 


    } 


    return service; 

} 

现在,该服务中的data显示在地图上和列表中。这些是两个单独的指令&控制器。

列表指令允许用户通过各种属性过滤数据,但过滤后的数据仅是该列表指令的$范围内使用。

我怎样才能使过滤后的数据提供给映象控制器的$范围?

我必须让服务内filteredData财产和$留意是否从地图控制器吗?

+0

参加这个帖子一看我的回答: http://stackoverflow.com/questions/30975516/passing-updating-data-in-a-factory-from-one-controller-to-另外/ 30975802#30975802 – mggSoft

回答

0

您将需要通过服务暴露了过滤的结果,但你并不需要注意这一点。

从您的视图控制器设置一个范围变量为您服务

$scope.polygonService = polygonService; 

然后,您可以从您的控制器访问$ scope.polygonService.filteredData,或polygonService.filteredData和双向绑定将工作如预期。

<li ng-repeat="data in polygonService.filteredData"> 
    {{ data }} 
</li> 
+0

谢谢!但我需要'$ watch'来更新我的第二个指令$ map变量,即地图。不幸的是,当服务数据发生变化时,它不会更新。但是,是的,但我想。 – ProblemsOfSumit

+0

你可以提供一个运动员吗? – Alex

+1

“你需要在半年后通过服务” “公开过滤结果,我知道你的意思。 非常多'返回数据'或者其中的一个变种。并过滤服务中的数据 - 然后返回数据 - 可能通过'getData'方法。 – ProblemsOfSumit