当调用路线时,方法"加载"调用它来获取数据以显示用户的详细信息。(使用" this.store.findRecord"来获取用户)
在该页面中,点击按钮我正在从控制器进行ajax调用,成功之后我试图通过调用前一个方法来加载用户的更新值" load"。这个方法被调用但是" this.store.findRecord"没有打电话给后端。
current-user(包含加载方法的服务)
user: null,
load(){
window.u = this;
if(this.get('session.isAuthenticated')){
console.log('reload user');
this.get('store').findRecord('user', 'me', {reload:true}).then(user => {
this.set('user', user);
});
} else {
console.log('not reloading user');
}
}
当页面第一次加载时以及在ajax调用的成功部分加载时,将调用上述方法
Ajax调用
ajax: Ember.inject.service(),
currentUser: Ember.inject.service('current-user'),
init(){
this._super(...arguments);
},
actions:{
recharge(amount){
console.log(amount);
var user_id = this.get('currentUser').get('user').get('id');
var balance = this.get('currentUser').get('user').get('balance');
var that = this;
console.log(this.get('currentUser').get('user'));
this.get('ajax').post('/user/payments', {data: {user_id: user_id, amount:amount}})
.then(() => {
console.log("successfully recharged");
this.get('currentUser').load();
}).catch(() => {
console.log("Something went wrong");
});
}
}