0

私は2つのビューを使用しています。1つはアイテムのリスト全体を表示する元のビュー(現在は3人の詳細を表示)で、もう1つはコレクションに新しいアイテムを追加するためのモーダルダイアログです。モーダルダイアログで[追加]をクリックすると、新しい時間が元のビューに表示されます。しかし、ページに[変更をキャンセル]ボタンがあり、クリックすると、元のビューには重大からフェッチされたアイテムのみが表示され、後で行われたすべての変更が失われます。それができる方法はありますか?元のビューを呼び出そうとすると、ページに合計7人の詳細が表示されます。サーバーからフェッチされた元の3つのアイテムとモーダルダイアログから新しく追加されたアイテムで、そのリストに3つの元のアイテムが追加されました。elから最初のリストをxclearする方法を教えてもらえますか?

4

1 に答える 1

1

私の頭に浮かぶ最も簡単な方法は、最初のモデルデータを保存し、「変更をキャンセル」ボタンをクリックしてビューを再レンダリングしたときにそれらを復元することです。

Backbone.View.extend({

initialize: function(){
    _.bindAll(this,'restore_collection');
    this.collection.bind('reset',this.render);
    this.originalModels = this.collection.models;    
},

events: {   
    "click #cancel" : "restore_collection"   
},

restore_collection: function(){   
    this.collection.reset(this.originalModels);    
}
于 2012-10-08T15:48:30.560 に答える