重新加载为true时,Ember findRecord不会进行API调用

时间:2017-02-09 09:15:04

标签: javascript jquery ajax ember.js reload

当调用路线时,方法"加载"调用它来获取数据以显示用户的详细信息。(使用" 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");
        });
    }
}

0 个答案:

没有答案