私は2つの異なるモデル(フォルダとアイテム)を組み合わせたコレクションを持っています。モデルがサーバーからフェッチされると、フォルダーとアイテムが同じIDを持つことができます。成功を取得すると、コレクションにアイテムを追加するためにサーバーからの結果でcollection.resetを呼び出しますが、モデルの1つが重複しているため削除されます(collection.resetはcollection.addを呼び出し、モデルIDのうちの2つは同じです)。私はこれを解決するために変えることができる何か(モデル以外)はありますか?私はmodelIdが1.2で導入されたことを知っていますが、0.9.2からアップグレードすることはできません。backbone.js 0.9.2重複したIDを持つモデルをコレクションに追加する
0
A
答えて
2
重複IDでデータを維持しようとしている場合、バックボーンIDは一意である必要があり、サーバーAPIで属性の名前を変更できない場合は、別のIDを使用するようBackboneに指示することをお勧めします。あなたは、サーバーから戻ってくるデータをキャッチし、重複したIDを調整したいの代わり場合
var Collection = Backbone.Collection.extend({
\t model: Backbone.Model.extend({
\t idAttribute: '_id'
})
});
var col = new Collection([{id: 1, name: 'a'},{id: 1, name: 'b'}]);
$('#result').text(JSON.stringify(col.toJSON()));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js"></script>
<div id="result"/>
、その後、あなたは、いくつかの値がデータに依存するとIDの前に付けるためにModel.parseを使用することができます(たとえば、 「folder-」および「item-」)。次に、あなたは、
collection.reset(mixedModels, {parse: true});
関連する問題
- 1. Backbone.js:同じIDを持つ複数のモデルを含むコレクション
- 2. Backbone.jsコレクションにモデルを追加する問題
- 3. NHibernateと複合コレクションを持つ新しいアイテムを子コレクションに追加する
- 4. コレクションIDとモデルIDを持つURLを取得する方法
- 5. backbone.jsの別のコレクションにコレクションを追加する
- 6. backbone.jsコレクションと複数のタイプのモデル?
- 7. コレクションのあるbackbone.jsモデル
- 8. Backbone.jsのコレクションに新しいデータを追加する
- 9. Backbone.js - コレクションを参照してコレクションを別の(兄弟)コレクションに追加
- 10. Cocos2Dで重複するタグを持つオブジェクトを追加する
- 11. コレクションにモデルを追加する
- 12. MONGODB - 異なる値を持つ重複フィールドを追加する
- 13. 重複したIDを持つすべての行を削除
- 14. backbone.jsネストされたコレクションでイベントの発生を追加しますが、親モデルを返します
- 15. Backbone.jsコレクションにオブジェクトを追加していません
- 16. データベースに追加しても重複キーを持たない
- 17. 重複するIDを持つ2つのテーブルをマージする
- 18. 私のbackbone.jsコレクションのリセットが1つのモデルを追加するのはなぜですか
- 19. backbone.jsを使ったコレクション(全モデル)の合計を取得する
- 20. 1つのコレクションに2つのコレクションを複製します(重複なし)
- 21. backbone.js複合モデル
- 22. 重複したIDを持つNuGetパッケージの解決方法
- 23. long live backbone.js重複イベントを追加するとバグが発生する
- 24. backbone.jsコレクションから各モデルを削除
- 25. Backbone.jsのBackbone.Subset.jsを実装して親コレクションのモデルをフィルタリングする
- 26. 重複したTFSコレクションDBを使用してTFS 2012から2015にアップグレードする際の重複インスタンスIDエラー
- 27. 重複するIDを持つ行をマージする
- 28. Backbone.js:モデル、コレクション、ルーター、いつ、そしてなぜ?
- 29. 古いモデルを消去せずにBackbone.jsコレクションを更新する
- 30. backbone.jsにモデルのコレクションを保存するには?
を呼び出します。できるだけjsfiddleのようなオフサイトサービスでオンサイトスタックスニペットを優先します。 –
好奇心から、組み込みの「show console」オプションを使用していないのはなぜですか? –
私は最初にJSFiddleを持っていましたが、コンソールはありませんでした。 – mikeapr4