【发布时间】:2015-02-07 21:38:46
【问题描述】:
我对 ember 很陌生,但我已经花了几个小时来解决这个问题,但我无法自己解决。这是我的路线(使用 ember-cli):
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
save: function() {
var controller = this.controller;
controller.get('model').save().then(function(account) {
console.log('account saved');
controller.transitionToRoute('accounts.index');
}, function(response) {
console.log('account NOT saved');
});
return false;
},
deleteAccount: function() {
var controller = this.controller;
controller.get('model').destroyRecord().then(function(account) {
console.log('account deleted');
controller.transitionToRoute('accounts.index');
}, function(response) {
console.log('account NOT deleted');
});
return false;
},
cancel: function() {
this.controller.get('model').rollback();
this.transitionToRoute('accounts.index');
return false;
},
}
});
我正在我的模板(按钮)中触发 deleteAccount 操作。有趣的是,代码实际上是在删除记录。它发送一个成功的删除请求,API 删除该帐户。但它永远不会转换为accounts.index。相反,它会记录“未删除帐户”。如果我手动转到 account.index,则该模型不再存在(正如人们所期望的那样)。 我从官方 ember 文档中获得了代码。见:http://emberjs.com/api/data/classes/DS.Model.html#method_destroyRecord
那么为什么当模型被实际删除时,promise 总是失败呢?非常感谢您的帮助!
顺便说一句:这是一个将 account_id 作为参数传递的编辑路由,因此无需在路由上手动定义“模型函数”。以防万一有人想知道。
【问题讨论】:
-
嘿,
DELETE请求的响应是什么?也许是一个成功的200,但是ember不理解响应? -
这是一个空的 HTTP 200 OK。就我而言,这应该是对删除请求的有效响应。
标签: ember.js ember-data