Доступ к родительскому элементу из дочернего элемента hasMany

#ember-model

#ember-модель

Вопрос:

Я чувствую, что, должно быть, упускаю что-то очевидное, но как получить доступ к родительскому объекту из дочернего объекта, определенного hasMany в родительском объекте?

У нас есть иерархическая модель данных.

  • Приложение имеет много категорий
  • Категория имеет много уровней
  • Все наши отношения встроены.

Мы загружаем весь shebang из большого старого объекта JSON, например:

 var json_data = {
    "app_id": 100,
    "name": "My Cool App"
    "categories": [{
        "cat_id": 100,
        "name": "First Category",
        "layers": [{
            "layer_id": 100
            "name": "First Layer"
        },{
            "layer_id": 200
            "name": "Second Layer"
        }]
    },{  
        "cat_id": 200,
        "name": "Second Category",
        "layers": [{
            "layer_id": 300
            "name": "Third Layer"
        },{
            "layer_id": 400
            "name": "Fourth Layer"
        }]
    }]
}
  

и модели выглядят (примерно) как:

 App.AppConfig = Ember.Model.extend({
  app_id: attr(),
  appName: attr(),
  categories: hasMany('App.Category', {key: 'categories', embedded: true})
});


App.Category = Ember.Model.extend({
  cat_id: attr(),
  name: attr(),
  layers: hasMany('App.Layer', {key: 'layers', embedded: true})
});


App.Layer = Ember.Model.extend({
  layer_id: attr(),
  name: attr(),

  init: function() {
    this._super();
    this.on('didLoad', this, this.setDefaults);
  },

  setDefaults: function() {
    //This is the line I can't figure out
    var my_parent_category = this.get('parent');
  }  
});
  

Хорошо, тогда мы:

 var appConf = App.AppConfig.create();
appConf.load(1, json_data);
  

Итак, учитывая все это, из метода экземпляра App.Layer, как мне сделать что-то вроде
this.get('parent') получения дескриптора объекта App.Category, к которому принадлежит слой?