Angularjs 安格拉斯。如何更新在app.run中初始化的标头?

Angularjs 安格拉斯。如何更新在app.run中初始化的标头?,angularjs,cookies,Angularjs,Cookies,我想为我的Angular应用程序中的每个请求添加自定义头。 目前,我采用下一种方式: app.run(['list of dependencies', function(dependencies) { $http.defaults.headers.common['custom_header'] = $cookies.get('custom_cookie'); }]); 在我的自定义cookie没有更改之前,一切正常。但当更改cookie时,$http发送在app.run中初始化的旧co

我想为我的Angular应用程序中的每个请求添加自定义头。 目前,我采用下一种方式:

app.run(['list of dependencies', function(dependencies) {
    $http.defaults.headers.common['custom_header'] = $cookies.get('custom_cookie');
}]);
在我的自定义cookie没有更改之前,一切正常。但当更改cookie时,
$http
发送在
app.run
中初始化的旧cookie。因此,对于更新标题,我需要重新加载页面

我需要为动态更新头添加什么?当然,我可以直接更新头,例如,在控制器中,但我似乎以这种方式重复我自己。而且这种方法使代码变得不清晰和复杂

我希望在一个站点中配置所有标题


任何帮助都将不胜感激

据我所知,您可以在headers映射中存储函数:

$http.defaults.headers.common['custom_header'] = function() { 
    return $cookies.get('custom_cookie'); 
};

这样,每次发送请求时,Angular都会从函数中获取最新的cookie值,如果不为null,则会设置标头。

将处理该cookie的所有代码放入服务中。从run()块调用一个服务方法,从cookie中初始化头。确保每次在服务内部修改/删除cookie时,都会修改标头。据我所知,文档中还可以在标头映射中存储函数:
$http.defaults.headers.common['custom_header']=function(){return$cookies.get('custom_cookie');}@JBNizet谢谢您的评论!你的第二条评论正是我需要的。你可以把它作为答案贴出来,我会接受的。