2016-03-14 32 views
1

我有一個代碼片段,需要發生三次。這裏是第一個:刪除JavaScript中的重複代碼;更新對象傳入功能

if (!$scope.subId1) { 
     //$scope.subId1 = $scope.userEnteredSubId; 
     //cassetteRepository.subId1 = $scope.userEnteredSubId; 
     //$scope.userEnteredSubId = ''; 
     //cassetteRepository.userEnteredSubId = ''; 
     assignSubId($scope.subId1, cassetteRepository.subId1); 
     return; 
    } 

接下來的兩個部分代碼是代碼的重複以上,但subId1變得subId2。然後subId1變成subId3。

評論的代碼是我試圖刪除每個代碼片段,因爲它是重複的代碼。這就是我撥打assignSubId()的原因。但是,不更新來自來電的值的方法執行後:

var assignSubId = function(scopeVariable, repositoryVariable) { 
    scopeVariable = $scope.userEnteredSubId; 
    repositoryVariable = $scope.userEnteredSubId; 
    $scope.userEnteredSubId = ''; 
    cassetteRepository.userEnteredSubId = ''; 
} 

有沒有辦法做到這一點,所以我可以有一個功能更新的價值?

回答

2

這應該工作

if (!$scope.subId1) { 
     assignSubId('subId1'); 
     return; 
    } 

而且

var assignSubId = function(subId) { 
    $scope[subId] = $scope.userEnteredSubId; 
    cassetteRepository[subId]= $scope.userEnteredSubId; 
    $scope.userEnteredSubId = ''; 
    cassetteRepository.userEnteredSubId = ''; 
} 
+0

輝煌!我不知道你可以做到這一點。有效。謝謝! –