2012-08-03 132 views
13

比方說,我的軌道模型是這樣的:如何繼承或使用燼數據繼承其他模型的模型

class SalesRelationship < ActiveRecord 

end 

這是由crossSell繼承這樣的:

class crossSell < SalesRelationship 

end 

如何在餘燼數據中顯示這種繼承關係。什麼是我們的最佳做法:

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') 
    }); 

回答

13

八九不離十,你只能擴展SalesRelationship。

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

在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')}`; 
}); 

app/models/employee.js

import DS from 'ember-data'; 

import Person from './person'; 

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

如何從'./person'導入Person?'而不是看到兩個模型都在同一個文件夾中。 – Caltor 2017-01-17 15:02:42

+1

@Caltor謝謝,我更新了代碼:)好趕上! – rmcsharry 2017-01-17 15:55:13

+0

完美,非常感謝! – 2017-07-12 08:03:02