具有嵌套hasMany或belongsTo关系的Ember模型

时间:2016-11-08 23:42:04

标签: ember.js ember-data has-and-belongs-to-many

如果要设置具有belongsTo或hasMany关系的模型,可以执行以下操作:

export default Model.extend({
    "client": DS.belongsTo('client',{
        async: true
    }),
    "days": attr(''),
    "cars": DS.hasMany('car',{ // somehow nest within days
        async: true
    }) 
});

然而,如果我有动态表格怎么办?例如,我有一个充满空间的停车场。我创建了一条新记录,将客户分配给我的停车场。然后我开始在一周的不同日期分配空格。在每个空间内,我想知道在特定时间允许的车停在哪个地方。

Afaik,JSON输出将是这样的:

{
  "client" : "-EADn0NoAq65GRGOU-oQ",
  "days" : [ {
    "date" : "2016-11-11",
    "times" : [ {
      "when" : "morning",
      // want to somehow define a hasmany for which cars are being parked and in which lot number here
    } ]
  }, {
    "date" : "2016-11-12",
    "times" : [ {
      "when" : "afternoon"
      // want to somehow define a hasmany for which cars are being parked and in which lot number here
    } ]
  } ]
}

它看起来像在模型中,您只定义了顶级'。你如何定义超越顶级水平的关系?我希望能够访问特定的一天,然后时间......看看哪些车停在哪里,并且通过hasMany关系,我可以从另一个模型中的车中提取信息...车型,型号, milage,颜色等。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,我会有一个时段模型。

每个时段都有一个日期和时间,并且属于客户和汽车。 您应该能够确定哪些车辆在哪里,以及在任何给定时间哪个客户。

模型/ timeslot.js

export default Model.extend({
    "client": DS.belongsTo('client',{
        async: true
    }),
    "car": DS.belongsTo('car'),
    "bayNumber": DS.attr('number'),
    "day": DS.attr('date'),
    "time": DS.attr('string')
 })

不完全确定这是否是您所寻找的,但希望它有所帮助。