У меня есть 3 разных модели крепежа, как показано ниже.EmberJS - hasMany Светильники Модель Пустое значение
var Room = DS.Model.extend({
title: DS.attr('string'),
categories: DS.hasMany('Category', { async: true }),
isSelected: DS.attr('boolean')
});
var Category = DS.Model.extend({
title: DS.attr('string'),
room: DS.belongsTo('Room', {async: true }),
materials: DS.hasMany('Material', { async: true }),
isSelected: DS.attr('boolean')
});
var Material = DS.Model.extend({
title: DS.attr('string'),
category: DS.belongsTo('Category', {async: true}),
isSelected: DS.attr('boolean')
});
Я нахожу, когда пытаюсь просмотреть содержимое в модели материалов, оно пустое. В мой контроллер я разоблачить материалы, делая это:
currentMaterials: function() {
var room = this.filterBy('isSelected', true).get('firstObject');
var categories = room.get('categories');
var selectedCategory = categories.get('firstObject');
var material = selectedCategory.get('materials');
return material;
}.property('@each.isSelected')
Однако, когда я пытаюсь получить доступ currentMaterials значение равно нулю. Я ТОЛЬКО могу получить доступ к своим значениям, если я сначала получаю доступ к Номерам/категориям, используя цикл {{#each}. Как ни странно, когда я делаю {{#each}}, я могу получить доступ к значениям в currentMaterials.
Кто-нибудь понимает, почему?
Отличное объяснение, чтобы описать очень сложную конфигурацию. Спасибо за вашу помощь Jakub – netvampire