我正在使用ember-data和JSONAPISerializer在Ember中开发一个简单的TODO管理器应用程序。
我有以下代表任务的模型
应用程序/模型/ task.js
export default DS.Model.extend({
title: DS.attr ('string'),
description: DS.attr ('string'),
isComplete: DS.attr ('boolean')
});
来自后端的相应JSON数据如下所示
{
"data": {
"id": "1",
"type": "task",
"attributes": {
"title": "Complete Ember TODO manager application",
"description": "Build a simple Ember application for easily managing tasks",
"is_complete": "false"
}
}
}
我已使用以下控制器为任务添加了编辑支持。
应用程序/控制器/任务/ task.js
import Ember from 'ember';
export default Ember.Controller.extend({
isEditingTask: false,
actions: {
startEditTask() {
this.set('isEditingTask', true);
},
doneEditTask(id) {
this.set('isEditingTask', false);
this.get('model').save();
},
}
});
当不处于编辑模式时,会显示一个编辑按钮,触发startEditTask操作。在编辑模式下,显示一个触发doneEditTask操作的完成按钮。
我已经验证完成按钮确实会生成PATCH请求。
问题是发送到后端的JSON类型为任务而不是任务。这是预期的吗?
使用PATCH请求发送的JSON如下
{
"data": {
"id": "1",
"type": "tasks",
"attributes": {
"title": "Allow editing of a task",
"description": "Allow the user to change various properties of a task",
"is_complete": "true",
}
}
答案 0 :(得分:0)
可能已经太晚了,但我今天遇到了类似的问题,据我所知,基于这些问题:
JSON API response and ember model names
http://emberjs.com/api/data/classes/DS.JSONAPISerializer.html
http://jsonapi.org/format/#crud-updating
如果端点是复数(例如api / tasks),则ember期望类型也是复数