【问题标题】:Ember-data REST Api delete recordEmber-data REST Api 删除记录
【发布时间】:2014-05-06 02:31:15
【问题描述】:

我有一个由 ember 应用程序使用的 REST API。 这是列出模型的.hbs。我可以通过“保存”动作赋予新元素,并且每个项目也具有“删除”动作。

    {{ input value=name }}
    {{ input value=value }} 
            <button {{ action "save" this }}>Save</button>
    <table class="table">
    {{#each item in model}}
        <tr><td>{{item.name}}</td><td>{{float2 item.value}}</td><td><button {{ action "delete" item}}>delete</button></td></tr>
    {{/each}}
    </table>

到目前为止一切正常。如果我插入(保存)一个新元素,我不能“删除”它,它有 id:null 并且对 api 的请求在 URL 的末尾没有 id。 (尽管在客户端该项目将从列表中删除)

这是控制器的操作:

actions:  {
    save: function (record) {

        var vat = this.store.createRecord('vat',{
            name: this.get('name'),
            value: parseFloat(this.get('value'))
        });

        vat.save();
    },
    delete: function(record){
        console.log(record);
        record.deleteRecord();
        record.save();;
    }
}

我的猜测是在插入 API 后没有正确的响应,并且 ember-data 不知道新项目的 id。 (也许我错了)什么响应(JSON 结构)期望 RESTAdapter,带有哪个状态码?

【问题讨论】:

  • 我有一个类似的问题,我的 JSON 是正确的,而且我只有在第一次保存新项目时才会遇到这个问题......以下每个对象都可以

标签: rest ember.js ember-data


【解决方案1】:

在您的情况下,来自服务器的响应应该有 200 或 201 状态码,并且正文应该是这样的

{
    "vat": {
        "id": 1,
        "name": "Name",
        "value": 10.5
    }
}

您也可以重写 RESTAdapter 中的normalize 函数来调整服务器响应的格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    相关资源
    最近更新 更多