恢复.filter更改

时间:2016-09-30 13:20:52

标签: angular

我使用filter方法过滤我网站上的信息。

 this.result.combos = this.result.combos.filter(....);

我制作了一个reset按钮,以便我可以还原这些更改并将所有内容还原为原始数据而不使用过滤器。

我进行API调用以制作我的数据,并使用2个变量保存data已恢复:resultfreshData

我在filter上制作result,当我调用revert()方法时,我会这样做:

revert() {
       this.result = this.freshData;
   }

可悲的是,它不起作用,因为两者都绑定到收到的data正在发生变化 - 这意味着我无法恢复filter更改。

我如何重置它们?

1 个答案:

答案 0 :(得分:0)

问题是您正在修改this.result.combos,这也正在改变this.freshData.combos引用。为避免这种情况,请在过滤之前创建一个变量来保存对原始combos列表的引用:

this.freshCombos = this.result.combos;

然后在你的还原功能中:

revert() {
   this.result.combos = this.freshCombos;
}