0

以下は私のJSONです:

[ 
{  
    "id" : "1",
    "type" : "report"
},
{  
    "id" : "2",
    "type" : "report"
},
{  
    "id" : "1",
    "type" : "email"
},
]

バックボーン コレクション -> サービス コールから json が返されることを考慮してください。ここで、json 応答を使用して、バックボーン ビューとハンドルバー テンプレート システムを使用して html テーブルをレンダリングしています。2 行が表示されますが、代わりに 3 行あるはずです。

注: コレクション解析の応答は、正しい json (つまり 3 行) を返しています。idusing コレクション解析を一意のランダム生成番号で上書きすると、3 行すべてが表示されます。を変更したくないので、これは問題ありませんid

行を次のように表示したい:

1 reports
2 reports
1 email
4

2 に答える 2

2

Collection addのドキュメントから、

同じモデル (同じ id を持つモデル) をコレクションに複数回追加しても、ノーオペレーションであることに注意してください。

2 つの異なるオブジェクトが同じ ID を持つべき理由はわかりませんが、正当な理由があるかもしれません。1 つの提案は、json 応答の各オブジェクトに別のプロパティを追加し、_dummyIdそれをサーバー側からの自動インクリメント値に設定することです。クライアント側では、モデル定義コードで を に設定idAttribute_dummyIdます。

JSON 応答、

[ 
{  
    "id" : "1",
    "_dummyId": "1",
    "type" : "report"
},
{  
    "id" : "2",
    "_dummyId": "2",
    "type" : "report"
},
{  
    "id" : "1",
    "_dummyId": "3",
    "type" : "email"
},
]

http://backbonejs.org/#Model-idAttribute からのモデル定義、

var Meal = Backbone.Model.extend({
  idAttribute: "_dummyId"
});

そうは言っても、バックボーンにエレガントな設定があることを願っています。バックボーン コレクションをセットではなくリストとして機能させるものです。

于 2013-02-14T11:43:00.840 に答える