2014-09-29 68 views
-1

如何將數組的最大長度設置爲只有11個?這是否需要在LimitTo視圖中完成?還是我需要向控制器聲明另一個變量?極限數組長度Angular.js

 bowlingApp.controller('bowlPoints', function ($scope){ 
    $scope.bowlPoints = []; 

    $scope.addBowlPoints = function() 
    { 
     $scope.bowlPoints.push($scope.enteredPoints); 
    }; 
    }); 

<td ng-repeat="points in bowlPoints track by $index | limitTo:11">{{points}}</td> 
+1

addBowlPoints如何被調用?那麼關於一些驗證呢?如果它通過一個按鈕,然後要麼禁用按鈕,要麼顯示一個警告,如果bowlPoints已經是11. – sma 2014-09-29 15:18:48

+0

感謝您的警報的想法,我可以將此與以下解決方案集成 – imnew123 2014-09-29 15:29:12

回答

1

雖然「limitTo」將在可能情況下工作,另一路在控制器做這將是加分前陣成立一個if語句:

 bowlingApp.controller('bowlPoints', function ($scope){ 
$scope.bowlPoints = []; 

$scope.addBowlPoints = function() { 
    if(($scope.bowlPoints.length + $scope.enteredPoints.length) < 12) { 
    $scope.bowlPoints.push($scope.enteredPoints); 
    } 
}; 

});

+0

誠然,我只是舉一個例子,因爲沒有太多有關實際使用案例的信息。 – Rorschach120 2014-09-29 15:32:34

1

您可以使用limitTo但在使用track bylimitTo,你需要確保你跟蹤有限行,不是所有的人。否則,您最終將顯示所有結果,而不僅限於有限的計數。因此,通過對端移動軌跡:

<td ng-repeat="points in bowlPoints | limitTo:11 track by $index">{{points}}</td> 

但是,但是這並沒有設置你的源陣列限制在一個特定的長度,而是將只顯示有限的數量。

如果您主要關注的是限制原始數組本身,只是在UI禁用加載功能,從而使addBowlPoints不再被稱爲(假設這是從用戶界面完成),當尺寸已經達到極限。