2017-07-28 26 views
1

这里是打字稿我控制器功能:如何防止范围变量更改每当角JS模型价值变动

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为ngModel,并希望保持originalData原样。但问题在于,每当模型更改时,originalData都会更改。我怎样才能防止originalData更新?

回答

3

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

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

还有其他几种复制对象的方法,所以这只是一个例子。