Ember-data REST Api删除记录

时间:2014-03-27 08:37:47

标签: rest ember.js ember-data

我有一个ember应用程序使用的REST API。 这是列出模型的.hbs。我可以用" save"来提供新的元素。动作,每个项目都有一个"删除"动作。

    {{ 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>

到目前为止一切正常。如果我插入(保存)一个新元素的问题,我不能删除&#34;它,它有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,使用哪个状态代码?

1 个答案:

答案 0 :(得分:1)

在您的情况下,来自服务器的响应应具有200或201状态代码,正文应如下所示

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

您还可以在RESTAdapter中覆盖normalize函数来调整服务器响应的格式。