Javascript 断言失败错误:在转换到另一个页面后调用api时在余烬中

Javascript 断言失败错误:在转换到另一个页面后调用api时在余烬中,javascript,ember.js,ember-data,ember-cli,Javascript,Ember.js,Ember Data,Ember Cli,我们从登录页面调用API,然后转换到名为2fa的页面。在转换时,我们调用一个api,该api在成功登录后发送2fa代码。然后重定向到2fa页面 关于登录操作 is2FASave.save().then((response) => { if(response.data.is2fa){ this.get('session').setLoginCredential(email,password);

我们从登录页面调用API,然后转换到名为2fa的页面。在转换时,我们调用一个api,该api在成功登录后发送2fa代码。然后重定向到2fa页面

关于登录操作

         is2FASave.save().then((response) => {
            if(response.data.is2fa){
                this.get('session').setLoginCredential(email,password);
                var sendCode = this.store.createRecord('sendCode', {
                    email: email,
                    password: password
                });
                sendCode.save().then((res) => {
                    this.get('store').unloadAll('sendCode');
                    this.transitionToRoute('twofa')
                },(error)=>{
                });
            }
         }
在twofa页面上,我们在它的点击按钮上有“重发”按钮,在这里我们调用相同的api 这是写在twofa控制器上的

行动:{

    /**
     * Resend 2FA code.
     */
    twoFaResend: function() {
        var email = this.get('session').getEmail(),
            password = this.get('session').getPassword();
        var sendCode = this.store.createRecord('sendCode', {
            email: email,
            password: password
        });
        sendCode.save().then((res) => {
        },(error)=>{
        });
    },
当我们在twofa页面上调用这个api时,它给出了错误消息

断言失败:您只能卸载不在飞行中的记录。

单击“重新发送代码”按钮后,错误显示为

当我们检查余烬数据时,它具有上一个api调用的值。


现在,我们还尝试在同一页上多次调用同一api,效果非常好。当它转换到另一页时,会出现Dis问题,而api在另一页上被调用。

最近版本的ember data在卸载记录然后重新添加记录时出现问题。可能您遇到了此类问题。尝试卸载记录。我使用此选项卸载记录并在从存储中删除记录后调用它。是否有任何原因,您正在卸载所有记录,而不仅仅是所创建的记录?一般来说,您所做的并不真正适合
余烬数据
。余烬数据旨在处理记录,而不是触发操作。
sendCode
似乎更像是一个操作,而不是一个模型hav有什么理由不做一个简单的ajax调用来触发这个动作?