Ember.js 余烬数据自定义适配器

Ember.js 余烬数据自定义适配器,ember.js,ember-data,Ember.js,Ember Data,我已经为Ember数据编写了一个自定义适配器,用于 代码如下: 'use strict'; DS.RhomAdapter = DS.Adapter.extend(Ember.Evented, { extractVars: function(rhomRecord) { return rhomRecord.vars(); }, objectToId: function(record) { record["id"] = record.obj

我已经为Ember数据编写了一个自定义适配器,用于

代码如下:

'use strict';

DS.RhomAdapter = DS.Adapter.extend(Ember.Evented, {

    extractVars: function(rhomRecord) {
        return rhomRecord.vars();
    },

    objectToId: function(record) {
        record["id"] = record.object;
        return Ember.copy(record);
    },

    find: function(store, type, id) {
        console.log('find');
        var record = Rho.ORM.getModel(this.model).find(
            'first',
            {
                conditions: {object: id}
            }
        );
        var result = record.vars();
        result["id"] = result.object;
        return Ember.RSVP.resolve(result);
    },

    findAll: function(store, type) {
        console.log('findALl');
        var records = Rho.ORM.getModel(this.model).find('all');
        var results = records.map(this.extractVars);
        var results = results.map(this.objectToId);
        var promise = new Ember.RSVP.Promise(function(resolve, reject){
          // succeed
          resolve(results);
          // or reject
          reject([]);
        });
        return promise;
    },

    createRecord: function(store, type, record) {
        Rho.ORM.getModel(this.model).create(record.toJSON());
        return Ember.RSVP.resolve();
    },

    updateRecord: function(store, type, record) {
        console.log(record.get('id'));
        var result = Rho.ORM.getModel(this.model).find('first', {conditions: {object: record.get('id')}});
        result.updateAttributes(record.toJSON());
        return Ember.RSVP.resolve();
    },

    deleteRecord: function(store, type, record) {
        var result = Rho.ORM.getModel(this.model).find('first', {conditions: {object: record.get('id')}});
        result.destroy();
        return Ember.RSVP.resolve();
    }


});

创建新记录时,将调用createRecord。但是Ember不知道创建的对象的id。现在,当我尝试在视图中修改该对象时,会调用updateRecord,并传递该对象,但该对象没有id。因此,如果我不知道id,如何更新后端?

应使用新记录(包括id)解析
createRecord
返回的承诺


哦!!好啊我试试看。
createRecord: function(store, type, record) {
    var json = record.toJSON();
    Rho.ORM.getModel(this.model).create(record.toJSON());
    json.id = .... 
    return Ember.RSVP.resolve(json);
},