这是我在控制器函数中的打字稿:
let temp = null;
temp = _.find(this.scope.model.maintenanceArray,
function(_data,_key) {
return _data.iD === currentId;
}
this.scope.originalData = temp;
this.scope.maintenanceData = temp;
在视图中,
<input type="text" class="form-control" name="dateFrom"
placeholder="{{dateDefault}}"
ng-model="maintenanceData.from" required />
基本上我使用了maintenanceData for ngModel并希望保持原始数据不变。但问题是每次模型更改时都会更改originalData。如何防止originalData更新?
答案 0 :(得分:3)
这是因为变量temp
是通过引用originalData
和maintenanceData
传递的,因此这两个变量都引用同一个对象。为避免这种情况,您可以为两个变量之一创建temp
对象的副本。像这样:
this.scope.originalData = angular.copy(temp);
this.scope.maintenanceData = temp;
还有其他几种方法可以复制对象,所以这只是一个例子。