Я просто наткнулся на Полиморфные отношения Ember Data. Я думаю, что они будут полезны для того, над чем я работаю. Вот моя основная модель. Эта модель определяет, что существует много отношений с темами, которые являются как асинхронными, так и полиморфными.Ember Data - Полиморфные отношения
App.Source = DS.Model.extend({
name: DS.attr('string'),
type: DS.attr('string'),
locationType: DS.attr('string'),
locationSpecific: DS.attr('boolean'),
primary: DS.attr('boolean'),
published: DS.attr('boolean'),
sort: DS.attr('number'),
topics: DS.hasMany('topic', {
async: true,
polymorphic: true
})
});
Далее мы имеем Темы с базовым классом является «Тема»
App.Topic = DS.Model.extend({
name: DS.attr('string'),
sort: DS.attr('number'),
source: DS.belongsTo('source')
});
App.RegTopic = App.Topic.extend({
test: DS.attr('number', {
defaultValue: 8
}),
notes: DS.hasMany('notes', {
async: true
})
});
App.SummaryTopic = App.Topic.extend({
number: DS.attr('number', {
defaultValue: 9
})
});
и вот как я называю, чтобы получить темы
App.TopicsRoute = Ember.Route.extend({
model: function() {
return this.modelFor('source').get('topics');
}
});
Когда я список источников, Я получаю список следующих объектов назад
{
id: 1
name: "test"
type: "testType"
locationType: "international"
locationSpecific: "true"
primary: true
published: true
sort: 1
links: {
topics: "/topics?sourceId=1"
}
}
то моя тема вызов получает объекты, как их обратно
{
id: 4
sourceId: 1
name: Topic 4
type: "regTopic"
sort: 1
}
ли я что-то отсутствует? Можете ли вы не использовать полиморфные отношения с объектом 'links'?
Из моего понимания Полиморфных отношений, когда я делаю вызов/темы? SourceId = 1, он должен по существу загружать 2 разных темы в один вызов, чтобы затем я мог отображать regTopic и summaryTopic на той же странице, но в отдельные списки и сохранить их как отдельные объекты?
Вот обновленный jsbin, который кажется близким к работе. http://emberjs.jsbin.com/medojitibo/1/edit?html,js,console,output
Проблема, я вижу, что в моем контроллере темы все App.Topic в списке. Нет App.RegTopic или App.SummaryTopic
1. В чем же проблема? 2. Просьба представить демонстрационную версию проблемы через http://emberjs.jsbin.com/ –