现在,我知道在angularjs调用中为动态标题设置标记的唯一方法是$http
,如下所示:
return $http.get({
url: 'https://my.backend.com/api/jokes',
params: {
'jokeId': '5',
},
headers: {
'Authorization': 'Bearer '+ $scope.myOAuthToken
}
});
但是我想知道如何通过$ resource传递这个,这里有一些不起作用的伪代码:
...
.factory('myFactory',
['$resource',
function($resource){
return {
jokes: $resource('https://my.backend.com/api/jokes', null, {
query: {
method: 'GET'
}
})
};
}
]
);
...
return myFactory.jokes.query({
'jokeId': '5',
'headers': {
'Authorization': 'Bearer '+ $scope.myOAuthToken
}
});
如何动态传递标题到angularjs的$ resource?
答案 0 :(得分:34)
我不认为这可以按照您尝试的方式完成,因为配置对象在操作方法上不可用。但是动作配置方法有它。所以你可以做的是,不是直接返回资源,而是创建一个函数,该函数接受auth令牌的参数,然后构造资源并返回。
return {
jokes: function (token) {
return $resource('https://my.backend.com/api/jokes', null, {
query: {
method: 'GET'
headers: {
'Authorization': 'Bearer ' + token
}
}
})
}
};
然后将服务功能调用为
myFactory.jokes($scope.myOAuthToken).query({'jokeId': '5'});