ember-data:如何正确发布

时间:2014-01-02 15:14:46

标签: javascript rest ember.js ember-data

我已经使用ember-data设置了一个ember.js客户端作为持久性处理程序。 通过以下代码获取数据库中的所有记录可以正常工作:

router.js

App.ProjectsRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('project');
    }
});

但添加新记录无法正常使用此代码。它只添加到模型中而不是持久存在。

index.html(示例)

{{input type="text" id="newTitle" value=Title}}
<button class="small" {{action 'createProject'}}><i class="icon-plus-sign"></i></button>

Controller.js

App.ProjectsController = Ember.ArrayController.extend({
    actions: {
        createProject: function () {
            var project = this.store.createRecord('project', {
                project_number: this.get('newProject_number'),
                title: this.get('newTitle'),
                client: this.get('newClient'),
                comment: this.get('newComment'),
                xmlfile: this.get('newXmlfile')
            });
            this.set('newProject_number', '');
            this.set('newTitle', '');
            this.set('newClient', '');
            this.set('newComment', '');
            project.save();
        }
    }
});

models.js

App.Project = DS.Model.extend({
    title: DS.attr('string'),
    client: DS.attr('string'),
    comment: DS.attr('string'),
    project_number: DS.attr('string'),  
});

app.js

window.App = Ember.Application.create();

App.store = DS.Store.extend({
    adapter: DS.RESTAdapter,
});

DS.RESTAdapter.reopen({
  namespace: 'api/index.php',
  headers: {
      "API_KEY": "secret key",
      "ANOTHER_HEADER": "Some header value"
    }
});

框架版本

Ember : 1.2.0; 
Ember Data : 1.0.0-beta.5+canary.e120006;
Handlebars : 1.1.2; 
jQuery : 2.0.3; 

我错过了什么配置?但是,控制台中没有错误。 REST-Api适用于curl。

1 个答案:

答案 0 :(得分:0)

问题是对API的JSON“POST”结构:

<强>发送:

{project: {client: "test",comment: "test",project_number: "test",title: "test"}}

API-Backend预计:

{client: "test",comment: "test",project_number: "test",title: "test"}

我想知道我在哪里可以找到有关ember-data如何构建它的请求的信息。 (有待进一步发展)