Как не удалять дубликаты в коллекции в магистрали

Я создаю основную коллекцию с сервера 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.

Ваши варианты:

  1. Создать SectionItem модель, которая HasOneSection а также HasOne Item, Кто-то опубликовал скрипку с такой настройкой http://jsfiddle.net/mmacaula/XaESG/2/
  2. Используйте другую библиотеку - или расширение той, которую вы используете, например https://github.com/jj-studio/Backbone-JJRelational
  3. Добавить недвижимость в Section ключ модели, который сделает каждый из них уникальным. Это не очень хороший способ достичь того, что вы пытаетесь сделать.

Вот довольно хороший справочный ответ: Реализация отношения "многие ко многим" с помощью Backbone-Relational

Другие вопросы по тегам