我使用的是Django REST框架,而不是Rails(它似乎有几个神奇的宝石可以让所有东西迅速与Ember一起工作)而且我一直在努力弄清楚Ember是如何预期的。我使用的是Ember CLI,因此我也使用了Ember数据。
当我只是检索对象或对象数组时,文档仅说明了典型的GET用法。文档说明:
JSON有效负载应该是包含根属性
内的记录的对象
关于惯例:
JSON有效负载中的属性名称应该是Ember.js模型中属性的camelCased版本。
没问题。
1。但是,如果出现错误,API应如何响应?
好的,因此文档还说明您可以使用ajaxError
检查jqXHR
状态是否有错误,然后为记录返回已填充的DS.Error
。但是,我应该如何返回不同类型的错误。例如,让我们说用户会话现在无效,因此服务器无法按要求删除记录。
2。 Ember将如何提交请求?
总的来说,我对REST很陌生。我认为Ember只是使用适当的动词来进行它想要的动作:GET,POST,PUT,DELETE。我认为很清楚它会将所有模型的字段发送给POST一个新的,但DELETE怎么样? Ember会发送所有记录还是仅删除ID以删除对象?
答案 0 :(得分:1)
通常,只要打开浏览器开发工具并查看网络请求,您就可以看到Ember提出的请求。
Ember数据喜欢使用api来回应错误哈希,如下所示:
{"errors":{"title":["can't be blank"]}}
然后只要定义一个函数来处理错误情况:
Ember.Controller.extend({
actions: {
deleteUser: function() {
var user = this.model;
function success() {
// do something cool?
}
function failure() {
user.rollback();
}
user.destroyRecord().then(success, failure);
}
}
});
然后将自动填充user.errors,您可以在模板中执行if user.errors。