停止 object/variable 在打字稿中通过订阅进行更改

Stop object/variable changing with subscribe in typescript

我正在尝试对我的项目实施一些表单验证,其中更改检测是其中的一部分,如果用户正在“编辑”并且他们试图离开,我想在他们未保存时显示提示变化。我面临的一个问题是我有一个包含数据库中数据的数组。然后我想创建第二个数组,在页面加载时给出相同的数据,这样如果用户进行更改,2 个数组将不再相同,我可以显示提示。

但是,我遇到的问题是我的第二个数组永远与第一个相同。我不确定如何解决这个问题,我尝试使用 if 语句,例如:

this.service.memberData(this.memberId).subscribe(data => {
  
  this.firstArray = data;

    if (this.secondArray.length === 0) {
        this.secondArray = data;
    }

});

我怎样才能做到 secondArray 最初采用数据的值,但此后永远不会改变?

您需要克隆数组,而不是仅仅引用数组本身。

尝试this.secondArray = [...data];