试图在 <testapp@model:testroute::ember1700:1> 状态 root.loaded.updated.invalid 上处理事件“pushedData”
Attempted to handle event `pushedData` on <testapp@model:testroute::ember1700:1> while in state root.loaded.updated.invalid
我有一个名为“testroute”的 route (localhost:8080/testroute)。
它有一个记录。我试图编辑它 (localhost:8080/testroute/edit/1)。我给出了新的值并提交了。这些值无法通过服务器端验证,并且 错误消息 被抛出 状态代码 422。
然后我决定不再编辑它了。从这里开始,我走了另一条名为“nextroute”的路线 (localhost:8080/nextroute)。
现在,我再次尝试去 'testroute' (localhost:8080/testroute)。它没有成功,在控制台中我得到错误 "Attempted to handle event pushedData
on while in state root.loaded.updated.invalid."
我以前用编辑后的值进行 ajax 调用的是
this.get('model').save().then(function(response){
console.log('response',response);
//code
},function(error){
console.log('error',error);
//code
});
当我刷新页面时,我可以转到 'testroute' (localhost:8080/testroute)。但是出现这个错误后我打不开
记录在 ember 日期处于修改状态(我在 ember 检查器中看到它)。当我刷新它时,它只会进入干净状态。
据我所知,您的服务器无法处理您的 post/patch 请求并返回错误。因此,您的模型处于无效状态。你应该做的是,一旦返回错误,rollback 你的模型:
var model = this.get('model')
model.save().then(function(response){
console.log('response',response);
//code
},function(error){
console.log('error',error);
model.rollbackAttributes();
});
编辑:
如果您需要在离开页面之前保持模型的状态,您应该使用路由的 willTransition
事件,例如:
Ember.Route.extend({
actions: {
willTransition: function(transition) {
if (this.controller.get('model.errors')) {
Ember.Logger.debug('model will be reverted');
this.controller.get('model').rollbackAttributes()
}
}
}
});
有关详细信息,请参阅 here。
我有一个名为“testroute”的 route (localhost:8080/testroute)。
它有一个记录。我试图编辑它 (localhost:8080/testroute/edit/1)。我给出了新的值并提交了。这些值无法通过服务器端验证,并且 错误消息 被抛出 状态代码 422。
然后我决定不再编辑它了。从这里开始,我走了另一条名为“nextroute”的路线 (localhost:8080/nextroute)。
现在,我再次尝试去 'testroute' (localhost:8080/testroute)。它没有成功,在控制台中我得到错误 "Attempted to handle event pushedData
on while in state root.loaded.updated.invalid."
我以前用编辑后的值进行 ajax 调用的是
this.get('model').save().then(function(response){
console.log('response',response);
//code
},function(error){
console.log('error',error);
//code
});
当我刷新页面时,我可以转到 'testroute' (localhost:8080/testroute)。但是出现这个错误后我打不开
记录在 ember 日期处于修改状态(我在 ember 检查器中看到它)。当我刷新它时,它只会进入干净状态。
据我所知,您的服务器无法处理您的 post/patch 请求并返回错误。因此,您的模型处于无效状态。你应该做的是,一旦返回错误,rollback 你的模型:
var model = this.get('model')
model.save().then(function(response){
console.log('response',response);
//code
},function(error){
console.log('error',error);
model.rollbackAttributes();
});
编辑:
如果您需要在离开页面之前保持模型的状态,您应该使用路由的 willTransition
事件,例如:
Ember.Route.extend({
actions: {
willTransition: function(transition) {
if (this.controller.get('model.errors')) {
Ember.Logger.debug('model will be reverted');
this.controller.get('model').rollbackAttributes()
}
}
}
});
有关详细信息,请参阅 here。