【问题标题】:How to subclass or inherit a model from another model using ember-data如何使用 ember-data 从另一个模型继承或继承模型
【发布时间】:2012-08-01 09:15:38
【问题描述】:

假设我的 Rails 模型如下所示:

class SalesRelationship < ActiveRecord

end

这样被crossSell继承:

class crossSell < SalesRelationship 

end

如何在 ember-data 中显示这种继承关系。对此的最佳做法是什么:

App.salesRelationship = DS.Model.extend({
  name: DS.attr('string')
});

我可以像这样创建一个名为“crossSell”的子类

crossSell = App.salesRelationship({
    productName: DS.attr('string')
});

或者像这样

 App.salesRelationship.crossSell  = DS.Model.extend({
    productName: DS.attr('string')
  });

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    非常接近,您可以扩展 SalesRelationship。

    App.CrossSell = App.SalesRelationship.extend({
      productName: DS.attr('string')
    })
    

    【讨论】:

      【解决方案2】:

      在 Ember 2.7 中可以这样做。假设您有一个 Person 类并希望从它继承来为状态字段(如已雇用、退休、解雇等)创建 Employee

      app/models/person.js

      import DS from 'ember-data';
      
      export default DS.Model.extend({
        firstName: DS.attr(),
        lastName: DS.attr(),
        fullName: Ember.computed('firstName', 'lastName', function() {
          return `${this.get('lastName')}, ${this.get('firstName')}`;
      });
      

      app/models/employee.js

      import DS from 'ember-data';
      
      import Person from './person';
      
      export default Person.extend({
        status: DS.attr(),
        statusCode: DS.attr(),
      });
      

      【讨论】:

      • import Person from './person'; 怎么样,因为两个模型都在同一个文件夹中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      相关资源
      最近更新 更多