2

在我的应用程序中,我有一个与模型Comment有关系author的模型User

用 Java 术语来说,这个模型User是一个抽象类:模型实例要么是 type 要么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's 列表,包括它们各自author的 's。

默认情况下,Ember 将为每个作者创建一个User模型实例。

但是,我希望它根据请求响应中的属性创建 aStudent或 a 。Teachertype

实现这一目标的最佳方法是什么?在某个地方,我应该能够覆盖将 JSON 键映射到 Ember 模型的函数。

4

2 回答 2

1

好的,我找到了。事实证明 Ember 支持多态模型,所以我通过添加关系轻松解决{polymorphic: true}了它。author

App.Comment = DS.Model.extend({
    author: DS.belongsTo('user', { polymorphic: true }),
    ...
});
于 2013-10-23T14:28:44.330 回答
0

我会尝试覆盖 App.Comment 的序列化程序。您可以在此处找到一些示例文档。

于 2013-10-22T21:51:20.570 回答