【问题标题】:Ember-Data: RESTAdapter: It is possible to sideload an object list inside a sideloaded object?Ember-Data:RESTAdapter:可以在侧载对象中侧载对象列表吗?
【发布时间】:2013-08-15 07:04:21
【问题描述】:

您好,我正在使用 emberjs 和 ember-data,我对 javascript 非常陌生。

我正在关注 ember 网站上的本指南: http://emberjs.com/guides/models/the-rest-adapter/

我想知道我是否能够使用 ember-data rest 适配器在侧载对象中侧载对象列表,我从后端收到以下输出:

  {
    "search_flight" : { "flight_ids" : [
      166,
      4792
    ] },
  "flights" : [ 
      {
    "id" : 166,
    "arrival_airport" : "CUL",
    "date" : "Aug 14, 2013 12:00:00 AM",
    "departure_airport" : "MEX",
    "flight_detail_ids" : [ 166 ],
    "flight_details" : [ { 
          "id" : 166,
          "airline" : "Aeromexico",
          "arrival_airport" : "CUL",
          "arrival_time" : "16:48:00.000",
          "departure_airport" : "MEX",
          "departure_time" : "15:43:00.000",
          "flight_number" : "166",
          "travel_time" : 125
        } ],
    "flight_type" : 1,
    "travel_time" : 125
  },
  {
     //other flight...
  }]
 }

这是在我的 ember-data 配置中:

App.Flight = DS.Model.extend({
    date: DS.attr('string'),
    departureAirport: DS.attr('string'),
    arrivalAirport: DS.attr('string'),
    travelTime: DS.attr('number'),
    flightType: DS.attr('number'),
    flightDetail: DS.hasMany('App.FlightDetail')
});

DS.RESTAdapter.configure('App.FlightDetail', {
   sideloadsAs: 'flight_details'
});

我不知道我是否清楚。

要点网址:https://gist.github.com/jmsalcido/f46730922864e2456a5b

【问题讨论】:

    标签: rest ember.js ember-data


    【解决方案1】:

    是的,这是可能的,但它不称为旁加载 - ember 支持这种技术,但将其称为嵌入式。所以替换DS.RESTAdapter.configure {(.... sideLoadAs...试试:

    DS.RESTAdapter.map('App.Flight', {
      flightDetails: { embedded: 'always' }
    };
    

    此外,由于这是一个 hasMany 关系,我建议您更改模型定义以使用复数 flightDetails: DS.hasMany('App.FlightDetail') 而不是单数。

    有关嵌入式 hasMany 关系的另一个示例,请参阅此 SO 帖子:

    How to make embedded hasMany relationships work with ember data

    【讨论】:

    • 谢谢!,实际上我打算回答我自己的问题,办公室的一位朋友帮我解决了这个问题……但这与我正在寻找的答案相同,非常感谢!
    • 使用最新的 ember 数据,此方法不再起作用 .map() 不存在
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2017-05-20
    • 1970-01-01
    • 2012-05-16
    相关资源
    最近更新 更多