Javascript 余烬JS集合请求头
我正在尝试将用户注册后从响应接收到的身份验证令牌设置到Ember数据请求头中 这是我的application.js代码Javascript 余烬JS集合请求头,javascript,ember.js,ember-data,ember-cli,Javascript,Ember.js,Ember Data,Ember Cli,我正在尝试将用户注册后从响应接收到的身份验证令牌设置到Ember数据请求头中 这是我的application.js代码 import DS from 'ember-data'; export default DS.RESTAdapter.extend({ namespace: 'merchant', host: 'http://192.168.1.173:3000', headers: function() { return { "token":local
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
namespace: 'merchant',
host: 'http://192.168.1.173:3000',
headers: function() {
return {
"token":localStorage.token,
};
}.property("localStorage.token","token")
});
在收到来自注册用户API调用的成功响应后,我正在尝试设置标头
var register=this.store.createRecord('registermerchant',data);
register.save().then(function(response){
console.log(response.success);
if(response.get('success')){
self.set('token',response.get('token'));
self.transitionToRoute('merchanthome')
}
及
我可以看到更新的localStorage.token值,但是由于某些原因,该值未设置为reqest标头令牌键
令牌没有更新到标头,只有在执行页面刷新后,新更新的令牌才会发送到服务器
任何关于我可能做错什么的想法,任何提示都将不胜感激。
谢谢
localStorage
不是一个可观察的余烬对象,因此您的属性(“localStorage.token”)
将只评估一次。相反,每次重新评估属性时都要使其不稳定:
headers: function() {
return {
"token":localStorage.token,
};
}.property().volatile()
是的,我也弄明白了。谢谢你,我没有15次重复,所以我无法给出答案。出于好奇,我如何围绕localStorage对象构建一个余烬可观察对象?您可以将localStorage包装在自己的对象中,并使用getter和setter委托调用。您需要使用
get
和set
来访问它。对于能够存储任意数据的启用了ember的通用本地存储,您需要使用unknownProperty
/setUnknownProperty
。
headers: function() {
return {
"token":localStorage.token,
};
}.property().volatile()