2012-10-08 23 views
0

我使用兩個視圖,一個原始視圖顯示項目的整個列表(當前顯示3個人的詳細信息),另一個視圖是將模型對話框添加到集合中。當我在模態對話框中點擊添加時,新時間將填充到原始視圖中。但是我在頁面中有一個按鈕「CancelChanges」,當我點擊該按鈕時,原始視圖只能顯示從嚴重獲取的項目並丟失之後做出的所有更改。有沒有辦法做到這一點?當我嘗試打電話給我的原始視圖時,該頁面顯示共有7人的詳細信息。從服務器+從模式對話框中新添加的項目中獲取的原始3項目,並且它將3個原始項目添加到該列表中。可以讓任何人知道如何從el中清除最初的列表?如何在backbone.js中實現頁面刷新(從服務器獲取數據並丟失所有更改)功能?

回答

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);  
} 
+0

謝謝,它幫助了我。我還發現,通過在我的元素上調用空白可以這樣做。 $(this.el).empty();在我調用$(this.el).append(contacts)之前調用 ;它幫助我恢復了收藏。 – 8GB

相關問題