2

私は私を狂わせているこの問題を抱えています。AオブジェクトとBオブジェクトを受け取るエンティティという名前のエンティティのコレクションがあります。次のコードは、見た目は単純ですが、(I)の意図したとおりに機能しません。どういうわけか、エンティティコレクションに追加されている最後のオブジェクトが追加されていません。実際、前後の長さを印刷すると、予想される1、2、3、4、5、6ではなく1、2、3、4、5、5のようなものが得られます。AとBはエンティティの「サブクラス」です。これはモデルであり、AとBの両方に対応するビューがあります。結局、私は6つの目に見えるオブジェクトを期待していますが、私は5つしか得られません。誰かが問題が何であるかについて何か考えを持っていますか?前もって感謝します。

var that = this;
_.each( this.as.models, function( a, i ){
      that.entities.add( a );
});
_.each( this.bs.models, function( b, j ){
    that.entities.add( b );
});
4

1 に答える 1

2

オブジェクトまたはバックボーンモデルをバックボーンコレクションに追加すると、そのオブジェクトがコレクションにまだ存在していないかどうかがチェックされます。既存のオブジェクトが挿入された場合、何も変更されず、イベントは発生しません。オブジェクトは、同等性またはid属性の一致によって同じと見なされます。

{merge: true}オプションをメソッドに渡すことでこれをオーバーライドする方法がありますadd

于 2013-03-24T21:44:52.793 に答える