gpt4 book ai didi

javascript - 每当 Angular JS 中的模型值发生变化时,如何防止范围变量发生变化

转载 作者:行者123 更新时间:2023-11-30 11:33:28 28 4
gpt4 key购买 nike

这是我在 typescript 中的 Controller 函数:

let temp = null;

temp = _.find(this.scope.model.maintenanceArray,
function(_data,_key) {
return _data.iD === currentId;
}
this.scope.originalData = temp;
this.scope.maintenanceData = temp;

在 View 中,

<input type="text" class="form-control" name="dateFrom"         
placeholder="{{dateDefault}}"
ng-model="maintenanceData.from" required />

基本上,我对 ngModel 使用了 maintenanceData,并希望保持 originalData 不变。但问题是每次模型更改时 originalData 都会更改。如何防止 originalData 更新?

最佳答案

发生这种情况是因为变量 temp 通过引用传递给 originalDatamaintenanceData,所以这两个变量引用同一个对象。为避免这种情况,您可以为两个变量之一创建 temp 对象的副本。像这样:

this.scope.originalData = angular.copy(temp);
this.scope.maintenanceData = temp;

还有其他几种方法可以将对象复制到那里,所以这只是一个例子。

关于javascript - 每当 Angular JS 中的模型值发生变化时,如何防止范围变量发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45376227/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com