如何将数组最大长度设置为11.这是否需要在LimitTo视图中完成?或者我是否需要向控制器声明另一个变量?
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>
答案 0 :(得分:1)
您可以使用limitTo
,但在track by
与limitTo
一起使用时,您需要确保跟踪有限的行,而不是所有行。否则,您将最终显示所有结果,而不仅仅是有限的计数。所以追踪到最后:
<td ng-repeat="points in bowlPoints | limitTo:11 track by $index">{{points}}</td>
但是,这并没有将您的源数组设置为特定长度,而是仅显示有限的数量。
如果您主要关注的是限制原始数组本身,只需禁用UI上的添加功能,以便不再调用addBowlPoints
(假设这是从UI完成的),当大小时已达到限制。
答案 1 :(得分:1)
虽然&#39;限制到&#39;可能会在场景中工作,在控制器中执行此操作的另一种方法是在向数组添加点之前设置if语句:
bowlingApp.controller('bowlPoints', function ($scope){
$scope.bowlPoints = [];
$scope.addBowlPoints = function() {
if(($scope.bowlPoints.length + $scope.enteredPoints.length) < 12) {
$scope.bowlPoints.push($scope.enteredPoints);
}
};
});