2012-08-03 6 views
13

Powiedzmy moi modele szyny wyglądać następująco:Jak podklasy lub odziedziczyć model od innego modelu korzystania Ember-data

class SalesRelationship < ActiveRecord 

end 

Która jest dziedziczona przez crossSell tak:

class crossSell < SalesRelationship 

end 

Jak wyświetlić tę relację dziedziczenia w danych ember. Co to jest najlepsze praktyki dla tego:

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

mogę utworzyć podklasę o nazwie 'crossSell', jak to

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

lub tak

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

Odpowiedz

13

Całkiem blisko, ty może po prostu rozszerzyć SalesRelationship.

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

W Ember 2.7 można to zrobić w ten sposób. Zakładam, że masz klasę Person i chcą dziedziczyć po nim dokonać Employee na polu statusu (jak zatrudniony, na emeryturze, zwolniony na zostawić etc)

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

Co powiedzie się na "importowanie osoby z" ./person "; zamiast tego widząc, że oba modele znajdują się w tym samym folderze. – Caltor

+1

@Caltor Dzięki, zaktualizowałem kod :) Dobry połów! – rmcsharry

+0

Idealne, wielkie dzięki! –

Powiązane problemy