#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, к которому принадлежит слой?