如何使用ember-data从另一个模型继承或继承模型

时间:2012-08-03 10:16:27

标签: ember.js ember-data

假设我的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')
  });

2 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:8)

在Ember 2.7中可以这样做。假设你有一个Person类,并希望继承它,为状态字段创建一个Employee(如雇佣,退休,休假等)

应用程序/模型/ 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')}`;
});

应用程序/模型/ employee.js

import DS from 'ember-data';

import Person from './person';

export default Person.extend({
  status: DS.attr(),
  statusCode: DS.attr(),
});