Я использую адаптер localstorage и emnber-data, и когда я уничтожаю запись, которая имеет отношение hasMany, я хочу также уничтожить все эти.Emberjs, ember-data, localstorage adapter, destroyRecord и все hasMany отношения
Вот модели:
App.Category = DS.Model.extend({
title: DS.attr('string'),
items: DS.hasMany('item')
});
App.Item = DS.Model.extend({
name: DS.attr('string'),
category: DS.belongsTo('category')
});
У меня есть действие под названием «destroyCategory», в котором я пытался несколько вещей, но, независимо от того, что я стараюсь я получаю только странность.
Я пробовал перебирать «детей», я пробовал просто уничтожить «родителя», но никто не работает так, как ожидалось. Я предполагаю, что я просто пропустил что-то основное, поэтому оцените помощь.
EDIT:
ОК, я попытался это:
deleteItem: function(user_cat) {
this.store.find('category', user_cat.id).then(function(category) {
items = category.get('items');
items.forEach(function(item, index, enumerable) {
item.destroyRecord();
});
category.destroyRecord();
});
И странность я получаю то, что он разрушает все, кроме одного "ребенка" запись ... Вата?
последнее обновление:
Это работает, но мне интересно, если есть лучше, более идиоматический подход:
deleteItem: function(selection) {
this.store.find('category', selection.id).then(function(category) {
items = category.get('items');
items.toArray().forEach(function(item, index, enumerable) {
item.destroyRecord();
});
category.destroyRecord();
});
}
Что ты пытаясь достичь? Я предполагаю, что у вас уже есть элементы, присутствующие в 'store', которые вы должны удалить из текущего' controller/model'? – tr3online
Когда пользователь уничтожает родительскую категорию, все элементы в ней также должны быть уничтожены. – jasongonzales
Они уже были сохранены в «магазине»? Т.е.: вы сделали «category.save()» или все они предварительно сохранены? – tr3online