Как не удалять дубликаты в коллекции в магистрали
Я создаю основную коллекцию с сервера JSON. Данные взяты из Монго, поэтому каждый элемент имеет одинаковые объекты, и магистраль удаляет эти дубликаты. Это нежелательное поведение для меня, поэтому я не могу найти решение, чтобы сохранить эти случаи. После получения у моих предметов есть только "section1" в объекте поиска (id:2). Мне нужен тот же раздел и в первом объекте. Например, мой ответ сервера:
items: [{
id:1,
sections: [{
id: 1.//this object is removed
name: 'section1'
}]
}, {
id: 2,
sections: [{
id:1.
name: 'section1'
}]
}]
Моя модель сечения просто:
Section = Backbone.RelationalModel.extend({
});
и модель изделия:
Item = Backbone.RelationalModel.extend({
relations: [
{
'type': 'HasMany',
'key': 'sections',
'relatedModel': 'Section',
'includeInJSON': 'id',
'reverseRelation': {
'key': 'item',
'includeInJSON': 'id'
}
}
]
});
1 ответ
Если я правильно помню, этот плагин не поддерживает многие ко многим. Итак, что происходит, это то, что он прикрепляет Section 1
к первому Item
затем прикрепите его ко второму и снимите с первого.
На самом деле, из документов:
Backbone.HasMany
Определяет отношение HasMany. При определении обратной связи тип будет HasOne.
Ваши варианты:
- Создать
SectionItem
модель, котораяHasOne
Section
а такжеHasOne
Item
, Кто-то опубликовал скрипку с такой настройкой http://jsfiddle.net/mmacaula/XaESG/2/ - Используйте другую библиотеку - или расширение той, которую вы используете, например https://github.com/jj-studio/Backbone-JJRelational
- Добавить недвижимость в
Section
ключ модели, который сделает каждый из них уникальным. Это не очень хороший способ достичь того, что вы пытаетесь сделать.
Вот довольно хороший справочный ответ: Реализация отношения "многие ко многим" с помощью Backbone-Relational