Отношения Ember-Data для объектов, которые имеют отношения к другим экземплярам того же объекта

Я конвертирую проект из Backbone (с Backbone Relational для ORM) в Ember и не могу найти в документации пример того, как использовать DS.belongsTo для ссылки на объект того же типа.

Другими словами, у меня есть следующее определение модели (общий псевдокод для ясности).

BoxModel
  Text = String
  BoxParent = BoxModel (referenced by id)

Я хочу воссоздать эту структуру в Ember для манипуляций на стороне клиента и т. д.

Я также использую requirejs, поэтому все мои целевые объекты для DS.belongsTo должны быть включены в оператор определения и доступны в качестве параметров для анонимной функции.

Таким образом, я сомневаюсь, что смогу использовать что-то вроде этого:

define ([ 'textbox'  ]), function(TextBox) {
  return DS.Model.extend({
    BoxParent: DS.belongsTo(TextBox)
   });
});

Ссылка на определение текущего класса вряд ли будет работать. В Django этот тип отношений обрабатывается со специальной целью «я», но я не могу найти эквивалентного решения в Ember. Любая помощь будет очень высоко ценится.

И последнее замечание: эта связь также может быть нулевой, потому что не все текстовые поля должны иметь родителя (это неизбежно с этим типом связи, если только у вас нет бесконечных циклических ссылок.

Спасибо! Стив


person stevekane    schedule 05.12.2012    source источник
comment
привет всем, я хотел оставить это здесь, так как я нашел это чрезвычайно полезным и кратким как ответ на мой вопрос. Я еще не реализовал его в своем собственном проекте, чтобы убедиться, что он работает, поэтому я оставлю это без ответа на ближайшее время на случай, если люди захотят добавить к обсуждению. stackoverflow.com/questions/13727512/self-join-with -эмбер-данные   -  person stevekane    schedule 06.12.2012


Ответы (1)


Вам нужно заключить имя модели в кавычки, чтобы использовать неинициализированное имя модели.

App.Box = DS.Model.extend([
  parent: DS.belongsTo('App.Box')
});
person Cyril Fluck    schedule 14.04.2013