簡體   English   中英

如何不刪除骨干集合中的重復項

[英]How to not remove duplicates in collection in backbone

我從服務器JSON創建主干集合。 數據來自mongo,因此每個項目都有相同的對象,主干將刪除這些重復項。 對我來說,這是不想要的行為,所以我找不到解決方案來保留此實例。 提取后,我的物品在secound對象中只有'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'
                    }
                }
            ]
});

如果我沒記錯的話,這個插件不支持多對多。 因此,發生的事情是將Section 1附加到第一個Item ,然后將其附加到第二個Item ,並將其從第一個Item刪除。

實際上,從docs

Backbone.HasMany

定義一個HasMany關系。 定義reverseRelation時,類型將為HasOne

您的選擇:

  1. 創建一個具有HasOne SectionHasOne ItemSectionItem模型。 有人用這種設置發布了一個小提琴http://jsfiddle.net/mmacaula/XaESG/2/
  2. 使用另一個庫-或您使用的庫的擴展,例如https://github.com/jj-studio/Backbone-JJRelational
  3. 將一個屬性添加到Section模型鍵,使每個鍵都唯一。 但是,這不是實現您要完成的操作的好方法。

這是一個很好的參考答案: 使用Backbone-Relational實現多對多關系

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM