Ember - 成功插入后端后未返回记录ID(null)

时间:2014-01-02 08:51:05

标签: json ember.js ember-data

嗨,谢谢你抽出时间回答我的问题。

我的控制器中有以下代码:

.
.
.

var project = this.store.createRecord('project', {
                name: projectName,
            });

            project.save();
            alert(project.get('id') + project.get('name'));
.
.
.

这会将记录成功添加到数据库,并自动刷新前端以反映这些更改。但是,当执行警报时,仅打印名称。

对于ID我得到null。

基本上我需要在记录成功后获取从服务器返回的id值。我检查了返回的JSON:

{"project":{"id":6,"name":"dfgdgf", "created_at":"2014-01-02T08:37:57.491Z","updated_at":"2014-01-02T08:37:57.491Z"}}

所以id字段包含在json响应中。问题是否会发生,因为服务器还返回两个在ember模型中找不到的字段(created_at和updated_at)?

非常感谢你!

编辑:

我在ember中的模型中添加了created_atupdated_at,当我尝试调用project.get('id');

时仍然为空

有什么建议吗?

由于

3 个答案:

答案 0 :(得分:2)

来自服务器的数据是异步返回的,因此需要使用回调函数和调用警报,或者使用该函数中返回的数据。

可以在以下主题中找到可能的解决方案,

is handling custom server side errors in ember-data when saving model possible

Get Ember-Data REST response value

答案 1 :(得分:2)

var project = this.store.createRecord('project', {
    name: projectName,
});

project.save().then(function(projectResponse) {
    alert(projectResponse.get('id') + projectResponse.get('name'));
});

这肯定会起作用!! :)

答案 2 :(得分:0)

 savePerson: function(hash){
     return this.store.createRecord('agents/person', hash).save();
    },


  var hash = {
                      given_name : firstname,

         };

  this.savePerson(hash).then(function(record){
                var personModelId = record.get('id');

我得到了我的那个