gpt4 book ai didi

javascript - angularjs:将一个服务传递到另一个服务中?

转载 作者:行者123 更新时间:2023-12-03 03:06:51 27 4
gpt4 key购买 nike

我正在尝试找出执行以下操作的最佳方法:

根据后端开发人员的请求,我们希望有一个 json 文件,其中包含前端请求中使用的 api url 的主列表。这样,最终用户的浏览器仅对该对象发出一个请求,然后我们可以将其传递给其他服务。例如...

dataUrl JSON 包含以下内容

{
"emails":"json/emails.json",
"mapping":"json/mapping.json",
"profile":"json/profile.json"
}

我需要将其存储为一个变量,可以在我的所有 api 调用中使用,如下所示:

app.factory('Emails', ['$http', function($http, Urls) {

var url = ""; //something here to get the dataUrl object for "emails"

var query = {};
query.getItems = function () {
return $http.get(url.emails); //from var emails above?
};
return query;
}]);

我最好的方法是什么?

这是我迄今为止尝试过的方法,但没有成功...

app.factory('Urls', ['$http', function($http) {
var query = {};
query.getItems = function () {
return $http.get('json/dataUrls.json');
};
return query;
}]);

app.factory('Emails', ['$http', function($http, Urls) {
Urls.getItems().then(function(response) {
var url = response.data.emails;
console.log(url);
})
var query = {};
query.getItems = function () {
return $http.get('json/emails.json');
};
return query;
}]);

这会导致控制台错误TypeError:无法读取未定义的属性“getItems”

最佳答案

您以错误的方式注入(inject)依赖

首先注入(inject)它,然后创建它的实例

试试这个

替换

app.factory('Emails', ['$http', function($http, Urls) {

app.factory('Emails', ['$http', 'Urls', function($http, Urls) {

关于javascript - angularjs:将一个服务传递到另一个服务中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47128695/

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