Javascript 如何从工厂获取数据并以标题形式发送?
嗨,我正在用angularjs开发web应用程序。我做了很多http调用来与web api交互。因此,我必须发送大量的数据在标题太多。我已经创建了用于获取数据的工厂,如下所示。这些数据应该在标题中传递。下面是我的工厂Javascript 如何从工厂获取数据并以标题形式发送?,javascript,angularjs,Javascript,Angularjs,嗨,我正在用angularjs开发web应用程序。我做了很多http调用来与web api交互。因此,我必须发送大量的数据在标题太多。我已经创建了用于获取数据的工厂,如下所示。这些数据应该在标题中传递。下面是我的工厂 var myapp = angular.module('RoslpApp'); myapp.factory("ScrollFunction", ['$location', '$anchorScroll', '$cookieStore', function ($locati
var myapp = angular.module('RoslpApp');
myapp.factory("ScrollFunction", ['$location', '$anchorScroll', '$cookieStore', function ($location, $anchorScroll, $cookieStore) {
return {
getheaders: function () {
var cookiePreferredLanguage = $cookieStore.get('PreferredLanguage');
var headers={
Logintoken: $cookieStore.get('LoginToken'),
LoginId: $cookieStore.get('LoginID'),
RequestedPlatform: "Web",
RequestedLanguage: cookiePreferredLanguage
};
return headers;
}
}
}
]);
Below is my sample http call.
function getpermissiondetails() {
var headersdata = ScrollFunction.getheaders();
$scope.Create = "Create";
var getsavedvechilceUrl = baseurl + "api/RolesPermission/getgroups";
var request = {
url: getsavedvechilceUrl,
method: 'GET',
headers: {
RequestedPlatform: headersdata.RequestedPlatform,
RequestedLanguage: headersdata.RequestedLanguage,
Logintoken: headersdata.LoginToken,
LoginId: headersdata.LoginID
}
};
$http(request).then(function (response) {
$scope.groups = response.data.data;
}, function (error) {
})
}
我想在header中看到的是,我已经在var headersdata=ScrollFunction.getheaders()中有了数据;是否可以传递类似头的内容:{headersdata},因为我可以在工厂中创建添加头。无需在每次http调用中扩展它。我尝试了标题:{headersdata},但这并没有向api发送任何数据。我能知道有没有更好的解决办法?任何帮助都将不胜感激。多谢各位 我想这是一个代码折射问题 Q:我是否可以通过执行类似
headers={factory data}
这样的快捷方式来避免混乱的属性分配
A:正常。我可能在解释你的问题时做得不好。我只是想让它更容易理解
简短回答:是。通过这样做,您可以进一步缩短代码
var request = {
url: getsavedvechilceUrl,
method: 'GET',
headers: ScrollFunction.getheaders()
};
为什么?
函数getheaders()
已经返回了一个javascript对象,它正是请求的对象。headers
正在查找的对象。对象{}
由于getHeaders()
已经返回了一个对象,您可以直接将其插入request.headers
。也就是说,您无需重新创建对象并逐个重新分配属性
希望这能有所帮助。我想你得到的是一个有效的解决方案,你只是在寻找建议来折射你的代码?这就是有效的解决方案。我想要一些var headers={factory data}。现在我分配每个属性,如RequestedPlatform:headersdata.RequestedPlatform.Yes,这就是我需要的。我的问题措辞不好。