Существует не так много документации по полиморфным отношениям в Ember.js. Пока что единственное, что я мог найти, было в самом pull request. К сожалению, следующий пример не привел к созданию рабочего приложения. Вот что выглядит мои модели, как:Полиморфные отношения в Ember.js
Whistlr.Event = DS.Model.extend
eventable: DS.belongsTo 'eventable',
polymorphic: true
Whistlr.Eventable = DS.Model.extend
events: DS.hasMany 'event'
Whistlr.Organization = Whistlr.Eventable.extend
name: DS.attr()
Полезная нагрузка выглядит следующим образом:
{
"events": [
{
"id": 1,
"eventable_id": 1,
"eventable_type": "organization"
}
]
}
И тогда я пытаюсь рендеринга это в моем макете:
ul
each event in controller
li = event.eventable.name
К сожалению, это приводит к список с множеством пустых li
s. Каждый li отображается, но event.eventable.name
возвращается обратно. Что-то не так с моим подходом? Как я могу отображать имя для каждого события?
UPDATE:
Когда я анализирую данные с Ember расширения Chrome, я вижу, что каждая запись для eventable равна нулю.
Он выдает эту ошибку: 'Ошибка: утверждение потерпело неудачу : Ошибка при загрузке маршрута: TypeError: factory undefined' – nullnullnull
последняя редакция не вызывает ошибок. –
Это вполне может быть. Я на самом деле использую Canary build прямо сейчас, и я все еще получаю эту ошибку, но я подозреваю, что это потому, что я неправильно обрабатываю псевдонимы. Я открыл [второй вопрос] (http://stackoverflow.com/questions/19371465/setting-an-polymorphic-alias-with-ember-data-1-0beta) о том, как использовать псевдоним Ember-Data 1.0Beta. – nullnullnull