【发布时间】:2014-01-07 05:02:36
【问题描述】:
我正在尝试将我认为是来自索引控制器的非常简单的 ember 删除操作(基于此示例:http://discuss.emberjs.com/t/migrating-from-ember-data-0-13-to-1-0-0-beta-1-my-findings/2368)放在一起,我想我一定遗漏了一些东西。
actions: {
deleteZone: function (zone) {
if (confirm("Are you sure you want to delete the zone?")) {
var _this = this;
zone.deleteRecord();
zone.save().then(
function () {
_this.transitionToRoute('zones.index');
},
function (error) {
zone.rollback();
}
);
}
}
}
当我尝试删除具有相应依赖项的区域时遇到了麻烦。在这种情况下,服务器(Rails 4)会抛出异常并返回以下 JSON:
{"status":422,"message":"Cannot delete record because of dependent projects","errors":{}}
但是,虽然我相信服务器会返回正确的错误,但 UI 似乎在它到达那一步之前就失败了。如果我在 catch 函数内的 zone.rollback() 之后的行上放置一个调试器,我会收到此错误:
Attempted to handle event `becameInvalid` on <App.Zone:ember1276:6> while in state root.deleted.inFlight. Called with {}.
我在 ember 1.4.0-beta.1、ember-data 1.0.0-beta.4 (ActiveModelAdapter) 和 rails 4.0.1 上运行。任何建议将不胜感激,谢谢!
【问题讨论】:
标签: ember.js ember-data