Ember + Mirage和人际关系

时间:2016-06-25 15:57:33

标签: ember.js

我正在使用Ember 2.6,目前正在使用Mirage作为客户端托管的静态数据库。

我开始使用fixtures du提供样本数据,但我不能使关系有效。

我有2个实体:岛屿和斑点,具有多对一关系

(def vecmap [{:a "hello"} {:a "hi"} {:a "hey"}])

(doseq [r vecmap] (get-in r [:a]))

和我的夹具数据

:a

//mirage/models/spot.js
import { Model, belongsTo } from 'ember-cli-mirage';   
export default Model.extend({
  island: belongsTo()
});

我的config.js只是一个简单的getAll

//mirage/models/island.js
import { Model, hasMany } from 'ember-cli-mirage';
export default Model.extend({
  spots: hasMany()
});

但是,当我打电话给它时,我得到了我的岛屿,但关系却缺失了。

使用默认的json api适配器。

如何让Mirage以给定的关系返回json数据? 我尝试在两侧设置关系,同时设置2,并且都不提供子实体。

这是我在github上的项目的链接: https://github.com/drallieiv/StreetpassTips/tree/feature/showRealDataForIslands/mirage

1 个答案:

答案 0 :(得分:0)

尝试在夹具文件中的关系属性之间没有下划线。

例如:

//mirage/fixture/spots.js
export default [
  {id: '1', name: 'test spot', islandId: 1},
}

同样在模型中你必须给hasMany和belongsTo一个模型 与hasMany('spot')belongsTo('island')

一样