新しいデータを受け取るたびにBackboneコレクションを一括リセットしたいのですが、リセットを行うたびにすべての現在のモデルが空になり、新しいデータが一番上にリセットされますが、新しいデータは、以前のモデルと並んで新しいモデルとして追加されます。誰でもこれを達成するために必要なことをアドバイスできますか?新しいモデルでバックボーンコレクションをリセットしても、以前のモデルは上書きされませんか?
JS
const OrderModel = Backbone.Model.extend({
parse(response) {
response.name = `+${response.name}`;
console.log(response.name);
return response;
}
});
const OrdersCollection = Backbone.Collection.extend({
model: OrderModel,
initialize() {
setTimeout(() => {
this.trigger('snapshot', data);
}, 1000);
setTimeout(() => {
this.trigger('snapshot', data);
}, 2000);
this.listenTo(this, 'snapshot', this.setCollection, this);
},
setCollection(response) {
this.reset(response, {parse: true});
}
});
jsFiddle:http://jsfiddle.net/kyllle/cpbcx7nt/
私はあなたの問題を理解していません。あなたのコレクションがリセットされるたびに、長さは常に3です。 –
コレクションがリセットされるたびにフィドルをチェックすると、さらに3つのモデルが追加されます。私が実行している問題は、モデルデータの最初のセットが設定され、各モデルでパーズが実行されて+に名前が追加され、次のデータセットが設定され、モデルが再び解析されますが、今回は2 ++ get追加されるなど。 – styler