angularJS:在控制器之间共享过滤数据

时间:2015-07-28 10:54:50

标签: angularjs angularjs-directive angularjs-controller

在控制器之间共享数据是这里讨论的一个主题,我通过创建一个factory来解决它,该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; } 包含调用我们的API的函数,当然还会返回我们的数据。

data

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

list指令允许用户按各种属性过滤数据,但过滤后的数据仅在list指令的$ scope内可用。

如何将过滤后的数据提供给地图控制器的$ scope?

我是否必须在服务中创建Type: Function( Event event, jqXHR jqXHR, PlainObject ajaxSettings, String thrownError )属性,并且还要从地图控制器中查看该属性?

1 个答案:

答案 0 :(得分:0)

您需要通过该服务公开过滤后的结果,但您不需要观看。

将控制器中的范围变量设置为您的服务

$scope.polygonService = polygonService;

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

<li ng-repeat="data in polygonService.filteredData">
  {{ data }}
</li>
相关问题