【问题标题】:How to use belongsTo in Ember如何在 Ember 中使用 belongsTo
【发布时间】:2014-04-07 12:06:08
【问题描述】:

我有这些模型:

Gmcontrolpanel.Offer = DS.Model.extend({
  idShop: DS.attr('number'),
  name: DS.attr('string'),
  duration: DS.attr('string'),
  optionDuration: DS.attr('number'),

  products: DS.hasMany('product', {embedded: 'always'})
});

Gmcontrolpanel.Product = DS.Model.extend({
  name: DS.attr('string'),
  description: DS.attr('string'),

  offer: DS.belongsTo('offer')
});

现在我已经了解了 hasMany 的工作原理;但是对于belongsTo?它应该如何成为产品的服务器答案,让 Ember-data 知道如何获得父报价?

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    这取决于您的要求。

    在您的 Offer 请求中,您需要包含与其相关的产品的 ID 列表,并且您需要对 Products 执行相反的操作,如下所示:

    {
       "offers": [
             {
                 'id':1,
                 'idShip':1,
                 'name':'Offer 1',
                 'duration':'3:00',
                 'products':[1,2,3,4,5]
             }
       ]
    }
    
    {
           "products": [
                 {
                     'id':1,
                     'name':'Product 1',
                     'offer':1
                 }
           ]
        }
    

    您可以从hasMany 中删除{embedded: 'always'}。 Ember 将自动启动对包含的每个 id 的请求。或者,您可以通过将所有产品或优惠包含在一个请求中来旁加载请求中的产品或优惠,如下所示;

    {
       "offers": [
             {
                 'id':1,
                 'idShip':1,
                 'name':'Offer 1',
                 'duration':'3:00',
                 'products':[1,2,3,4,5]
             }
       ],
       "products": [
            {
                 'id':1,
                 'name':'Product 1',
                 'offer':1
            }
       ]
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多