2015-06-26 140 views
1

我有一個數組betSlip,我正在做一些驗證,可以說現在數組有4個索引,每個索引都有一個input,所以我有4個輸入,每個索引一個。清除輸入索引

示例:值I在輸入類型:

1輸入:10

2輸入:10

3輸入:10

4輸入:10

下一個輸入不能大於前一個。 在我的應用程序中,這意味着如果我轉到第二個輸入並鍵入數字1,則輸入3和4應該再次回到0。但正如我在我的應用程序到目前爲止,如果您在第二個輸入中鍵入1,只有第三個輸入回到0,而不是其他。

所以,要清楚的是:如果我有10個輸入,在每個輸入中鍵入數字100,並且我轉到第3個輸入並輸入99,則其餘輸入應該回到0。之前的輸入。

我正在使用Angular和Lodash。

我拍了幾張照片

enter image description here

在此圖像中我的第二個輸入輸入1,只有3個輸入爲0,我需要每一個輸入回0,從離別當前指數。

enter image description here

,在這裏我的代碼:

$scope.riskWinCalculations2 = function(slip, type, index) { 
    var previousSlip = $scope.betSlip[index - 1], 
     currentSlip = $scope.betSlip[index], 
     nextSlip = $scope.betSlip[index + 1]; 


     if (currentSlip.risk.length && nextSlip != undefined) { 
     if (currentSlip.risk < nextSlip.risk) { 
      nextSlip.risk = 0; 
      nextSlip.win = 0; 
     } 
     } 
} 

我知道我的錯誤是在這裏這個變種nextSlip,所有我做的是告訴應用程序把一個空字符串中的下一個輸入如果目前的數量較少。但這就是爲什麼我在這裏,我需要知道如何解決它,考慮到所有的下一個輸入,而不僅僅是正確的下一個輸入。

此外,I made a video

UPDATE添加更多的說明

如果每一個輸入具有10的值,並且您有5個輸入,它的意思是:

1輸入:10

2輸入:10

3輸入:10

4輸入:10

5輸入:10

如果去第3個輸入和5型,這意味着:

1輸入: 10

2輸入:10

3輸入:5

4輸入:0

5輸入:0

所以,當你看到其它輸入回到0作爲初始值。但之前的投入保持不變。

回答

1
 //if the user tries to play with the input: 
     //he can not put lower amount in a previous input, 
     //when the next input is already filled out 
     _.each($scope.betSlip, function(slip, indexSlip) { 
     if (indexSlip > index) { 
      slip.risk = ''; 
      slip.win = ''; 
     } 
     }); 
1

如果我理解正確,我已經使用ng-repeatng-blur完成了上述邏輯。讓我知道是否有任何邏輯丟失。

<div ng-app> 
    <h2>Todo</h2> 
    <div ng-controller="TodoCtrl"> 
     <p ng-repeat='data in datas'> 
      <label>{{$index+1}}</label><input ng-model='data.value' ng-blur='checkRisk($index)'/>  
     </p> 
    </div> 
</div> 


function TodoCtrl($scope) { 
    $scope.datas = [{value:10},{value:10},{value:10},{value:10},{value:10}]; 
    $scope.checkRisk = function(index){  
     for(var i=index+1;i<$scope.datas.length;i++){     
       $scope.datas[i].value=0; 
      }   
    }; 
} 

檢查的jsfiddle http://jsfiddle.net/gopinathshiva/U3pVM/16711/

+0

在標題''低於您的輸入'TODO'''你有一個10的其他投入。如果你在第四個輸入中輸入'''1''',那麼第四個輸入中的其他輸入應該回到''0''',這在你的例子中沒有發生。在你的例子中我可以輸入任何東西。當前輸入應該等於或小於以前的輸入。您提到的 – NietzscheProgrammer

+0

**其餘輸入應該變爲零,而不是以前的輸入**。所以我確實喜歡 –

+0

Look:'''當前輸入應該等於或小於previous','這意味着:將其他輸入與當前輸入分開。 – NietzscheProgrammer