javascript - 修改后仍保留原始值

标签 javascript angular typescript ag-grid

我正在研究 Ag-grid。

this.rowData 是我第一次在网格上加载的原始数据。

我有一个 addRow 函数,它将在现有行的顶部添加 1 行,效果很好。

现在,当调用 reset 函数时,我需要将网格更新为其原始数据,即 this.rowData

问题是,当我单击 addRow 时,甚至 this.rowData 也会更新。

下面是我的代码:

Original Data:
 this._Service.httpPost(Request, Url).subscribe(data => {
        responseJson = JSON.parse(JSON.stringify(data));
          this.rowData = responseJson;
          this.gridOptions.api.setRowData(this.rowData); // say 6 rows displyed
});

addRow:
addRow() {
let rowData = this.rowData; // created a local variable
 rowData.unshift(newData);// rowData is now 7
 this.gridOptions.api.setRowData(rowData);// rowData is now 7
console.log(this.rowData) // returns 7, not sure why `this.rowData` gets modified
    }

最佳答案

let rowData = JSON.parse(JSON.stringify(this.rowData));

只要做到这一点,剩下的代码就完美了。

关于javascript - 修改后仍保留原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50582332/

相关文章:

javascript - 如果我不使用 “` 的初始值,为什么会得到 `flattenDeep(...)` TypeError` : `reduce` is not iterable”, ?

javascript - NodeJS 中的日期未正确更新

c# - 注释掉 HTML

javascript - 如何使用变量动态调用组件或服务?

javascript - 类型 '{}' 不可分配给类型 'number'

javascript - 如何使用 angularjs (1.x) 动态设置 HTML 元素的 id 属性?

javascript - Angular 一个项目有 2 种不同的配置

node.js - 创建外部模块时 typescript 类型不匹配

typescript - Browserify + Watchify + Tsify + Gulp 的性能问题

typescript - Angular 2 中的 RouteData 可以将变量从父组件传递给路由组件吗?