保存记录会在PATCH请求

时间:2016-08-10 10:06:45

标签: json ember.js ember-data

我正在使用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",
    }
}

1 个答案:

答案 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期望类型也是复数