2012-08-03 5 views
13

wir erben meine Schienen Modelle wie folgt aussehen sagen:Wie Unterklasse oder ein Modell aus einem anderen Modell mit glut-Daten

class SalesRelationship < ActiveRecord 

end 

, die von crossSell wie diese vererbt wird:

class crossSell < SalesRelationship 

end 

Wie zeige ich diese Vererbungsbeziehung in Glutendaten an? Was ist die beste Praxis für diese:

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

Kann ich eine Unterklasse namens 'crossSell' erstellen, wie diese

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

oder wie diese

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

Antwort

13

Ziemlich nahe, Sie kann SalesRelationship einfach erweitern.

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

In Ember 2.7 kann so gemacht werden. Angenommen, Sie haben eine Person Klasse und wollen von ihm erben, um eine Employee für ein Statusfeld zu machen (wie eingestellt, zurückgezogen, beschossen-verlassen usw.)

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(), 
}); 
+1

Wie wäre es 'import Person from './person';' statt sehen, da beide Modelle im selben Ordner sind. – Caltor

+1

@Caltor Danke, ich habe den Code aktualisiert :) Guter Fang! – rmcsharry

+0

Perfekt, vielen Dank! –

Verwandte Themen