Ember-Data Rhom的自定义适配器 - FindAll不工作

问题描述:

我正在为Rhom API写一个Ember-Data适配器。我写了代码。我在一个简单的Todo应用程序中使用它。当我创建一个新项目时,它会进入SQLite数据库。但是当我启动应用程序时,已经存在的应用程序无法在商店中加载。Ember-Data Rhom的自定义适配器 - FindAll不工作

我在我的适配器的findAll中写了一个console.log,我可以看到它从Rhom API获取了一个对象数组,并返回一个带有这些结果的承诺。但为什么它没有加载到商店?

我以本地存储适配器为例,做了这个。这是我的findAll:

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

sourceIdToId: function(record) { 
    record["id"] = record.source_id; 
    return record; 
}, 

findAll: function(store, type) { 
     var records = Rho.ORM.getModel(this.model).find('all'); 
     var results = records.map(this.extractVars); 
     var results = results.map(this.sourceIdToId); 
     console.log(results); 
     return Ember.RSVP.resolve(results); 
    }, 

正如你所看到的,打印的console.log以下出来,它只是包含我需要什么对象的数组。当我尝试与地点相关时,它也返回了相同类型的对象。

我该怎么办?

enter image description here

PS:本extractVarssourceIdtoId是auxillary至属性格式提取由Rhom返回记录的对象。

我真的不知道这是否会帮助你,但我想只是因为.find()返回一个承诺,你应该使用.then()回调来解决你的模型:

findAll: function(store, type) { 
    return Rho.ORM.getModel(this.model).find('all').then(function(records) { 
    var results = records.map(this.extractVars); 
    var results = results.map(this.sourceIdToId); 
    console.log(results); 
    return Ember.RSVP.resolve(results); 
    }); 
} 

希望它能帮助。

+0

嗨,我不认为Rho ORM会返回一个承诺。它只返回一个普通数组。 (来源)。无论如何,我试试。 –

+0

我是否需要编写一个自定义串行器或什么?我真的迷路了。 –