Angularjs:重置特定的$ scope对象属性

时间:2016-01-22 11:54:50

标签: javascript angularjs

我有2个选择字段和输入字段数作为范围对象属性

  $scope.resetAll=function(){
	    	$scope.tableVal=0;
	    };
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<select ng-model="tableVal.portfolio" ng-change="getProjectPhase(tableVal.portfolio)" class="form-control portfolioSelect" id="sel1" style="margin-top: -3px;">
     <option>blah blah<option>
     
      <select ng-model="tableVal.project" ng-options="v as v for (k,v) in selectOptions" class="form-control projectPhaseSelect" id="sel3" style="margin-top: -3px;">
         <option>blah blah<option>
        </select>
  
   <td>$<input  id="testingInput" type="number"step="0.02" ng-disabled="!tableVal.project" ng-model="tableVal.Prevention"> </td>
  
  
   <td>$<input  id="testingInput" type="number" step="0.02" ng-disabled="!tableVal.project" ng-model="tableVal.Appraisal"> </td>
  
  
   <td>$<input  id="testingInput" type="number" step="0.02" ng-disabled="!tableVal.project" ng-model="tableVal.InternalFailure"> </td>
  
  <button type="button" class="btn btn-primary" ng-click="resetAll()"style="margin-top: -11px;">RESET</button>
  
                                            

当我点击重置按钮 $ scope.tableVal = 0; 重置所有字段,但在我的情况下,我希望选择值不被替换,我以某种方式设法获取值并设置手动,但没有用

function(portfolio,project){
	        	
	        	 $scope.tableVal=0;
	        	$scope.tableVal.portfolio=portfolio;
                $scope.tableVal.project=project;
}

如何解决此问题

1 个答案:

答案 0 :(得分:1)

在resetAll方法中,重置除绑定到select的那些值之外的所有值。

for (var key in $scope.tableVal) {
    if (key !== 'project' && key !== 'portfolio') {
        $scope.tableVal[key] = 0;
    }
}