2013-10-22 146 views
2

在我的應用程序中,我有一個型號爲Comment的型號爲author的型號爲User創建模型的子類

要說Java語言,這個模型User是一個抽象類:模型實例是StudentTeacher類型。爲此,型號User有一個屬性type。因此,結構如下:

App.Comment = DS.Model.extend({ 
    author: DS.belongsTo('user'), 
    ... 
}); 

App.User = DS.Model.extend({ 
    type: DS.attr('string'), 
    ... 
}); 

App.Student = App.User.extend({ 
    ... 
}); 

App.Teacher = App.User.extend({ 
    ... 
}); 

通過一個REST API我收到的Comment的工作,包括各author的列表。

默認情況下,對於每個作者,Ember將創建User模型的實例。

但是,我希望它創建一個StudentTeacher,具體取決於請求響應中的type屬性。

什麼是最好的方法來實現這一目標?某處我應該能夠覆蓋將JSON密鑰映射到Ember模型的函數。

回答

1

好的,我找到了。事實證明,Ember支持多態模型,所以我通過將{polymorphic: true}添加到author關係中很容易解決它。

App.Comment = DS.Model.extend({ 
    author: DS.belongsTo('user', { polymorphic: true }), 
    ... 
}); 
0

我會嘗試覆蓋App.Comment的序列化程序。你可以找到一些例子文檔here