Angularjs 限制数组长度Angular.js
如何将数组的最大长度设置为仅11。是否需要在Limito视图中执行此操作?或者我需要向控制器声明另一个变量吗Angularjs 限制数组长度Angular.js,angularjs,Angularjs,如何将数组的最大长度设置为仅11。是否需要在Limito视图中执行此操作?或者我需要向控制器声明另一个变量吗 bowlingApp.controller('bowlPoints', function ($scope){ $scope.bowlPoints = []; $scope.addBowlPoints = function() { $scope.bowlPoints.push($scope.enteredPoints); };
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时显示警报。感谢警报想法,我可以将其与下面的解决方案集成。事实上,我只是给出了一个示例,因为没有太多关于实际用例的信息。