Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 限制数组长度Angular.js_Angularjs - Fatal编程技术网

Angularjs 限制数组长度Angular.js

Angularjs 限制数组长度Angular.js,angularjs,Angularjs,如何将数组的最大长度设置为仅11。是否需要在Limito视图中执行此操作?或者我需要向控制器声明另一个变量吗 bowlingApp.controller('bowlPoints', function ($scope){ $scope.bowlPoints = []; $scope.addBowlPoints = function() { $scope.bowlPoints.push($scope.enteredPoints); };

如何将数组的最大长度设置为仅11。是否需要在Limito视图中执行此操作?或者我需要向控制器声明另一个变量吗

       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>
您可以使用limito,但在使用track by with limito时,您需要确保跟踪的是有限的行,而不是所有行。否则,您将显示所有结果,而不仅仅是有限的计数。因此,将轨迹移动到终点:

   <td ng-repeat="points in bowlPoints | limitTo:11 track by $index">{{points}}</td>
但是,这不会将源数组限制为特定长度,而是只显示有限的计数


如果您主要关心的是限制原始阵列本身,只需禁用UI上的添加功能,以便在达到大小限制时不再调用addBowlPoints(假设这是从UI完成的)。

而“Limito”可能会在该场景中起作用,在控制器中执行此操作的另一种方法是在向数组添加点之前设置if语句:

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

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

})

addBowlPoints是如何命名的?关于这方面的验证呢?如果是通过按钮,则禁用按钮或在bowlPoints已经为11时显示警报。感谢警报想法,我可以将其与下面的解决方案集成。事实上,我只是给出了一个示例,因为没有太多关于实际用例的信息。