0

我正在使用两个视图,一个原始视图显示整个项目列表(目前它显示 3 个人的详细信息),另一个视图是模式对话框,用于将新项目添加到集合中。当我在模式对话框中单击添加时,新时间将填充在原始视图中。但是我在页面中有一个“CancelChanges”按钮,当我单击原始视图时,必须只显示从严重获取的项目并丢失以后所做的所有更改。有没有办法我可以做到这一点。当我尝试调用我的原始视图时,该页面总共显示了 7 个人的详细信息。从服务器获取的原始 3 个项目 + 从模式对话框中新添加的项目,并将 3 个原始项目附加到该列表中。谁能让我知道如何从 el 中清除初始列表?

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 回答