gpt4 book ai didi

angularjs - 在 AngularJS 服务之间共享数据

转载 作者:行者123 更新时间:2023-12-04 02:41:01 24 4
gpt4 key购买 nike

有没有办法在 AngularJS 中的服务之间共享数据?

用例:来自不同服务的数据聚合
例如,我想要一个从 REST 服务加载一些数据的 service1。然后另一个 service2 从另一个 REST API 向 service1 数据添加额外的数据以创建数据聚合服务。

我基本上想根据服务使用的 API 将服务分开,但最终仍然有一个服务保存所有数据。

最佳答案

创建第三个服务,该服务使用 $q 延迟库来组合来自使用 $q.all() 的 2 个 API REST 调用的 promise 。

然后将这第三个服务作为依赖项传递给您的 Controller ,并使用 $q.then() 组合结果:

var app = angular.module('angularjs-starter');

app.factory('API_1',function($http){
return $http.get('dataSource-1.json');
})

app.factory('API_2',function($http){
return $http.get('dataSource-2.json');
});

app.factory('API_3',function($q,API_1,API_2){
return $q.all([API_1,API_2]);
})
/* add "$q" and "API_3" as dependencies in controller*/
app.controller('MainCtrl', function($scope,$q,API_3) {

$q.when(API_3).then(function(results) {
/* combine the 2 API results arrays*/
$scope.combinedData=[results[0].data,results[1].data];

});


});

演示: Plunker Demo

关于angularjs - 在 AngularJS 服务之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com