Javascript 断言失败错误:在转换到另一个页面后调用api时在余烬中
我们从登录页面调用API,然后转换到名为2fa的页面。在转换时,我们调用一个api,该api在成功登录后发送2fa代码。然后重定向到2fa页面 关于登录操作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);
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调用来触发这个动作?