在控制器之间共享数据是这里讨论的一个主题,我通过创建一个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 )
属性,并且还要从地图控制器中查看该属性?
答案 0 :(得分:0)
您需要通过该服务公开过滤后的结果,但您不需要观看。
将控制器中的范围变量设置为您的服务
$scope.polygonService = polygonService;
然后,您可以从您的控制器访问$ scope.polygonService.filteredData,或从您的视图访问polygonService.filteredData,双向绑定将按预期工作。
<li ng-repeat="data in polygonService.filteredData">
{{ data }}
</li>