我正在尝试使用4个数字/年的集合执行增量和减量功能,其中导航应限制在4年的数组限制内。
我能够增加每次点击递增按钮的次数,但不能以相同的相反顺序递减计数。此外,一旦单击递增按钮,递减按钮将被禁用,只有当我到达递增/递减的最后一个索引时,该按钮才会发生反之亦然
游乐场是here
$scope.navigateYear=function(year, mode) {
const index = $scope.yearArray.indexOf(year);
if (index >= 0 && index < $scope.yearArray.length - 1 && mode === 'plus') {
this.year = $scope.yearArray[index + 1];
}else{
$scope.isPlusButtondisabled=true;
}
if (index >= 0 && index < $scope.yearArray.length - 1 && mode === 'minus') {
this.year = $scope.yearArray[index - 1];
} else{
$scope.isMinusButtondisabled=true;
}
}
我正在通过传递加号或减号模式在同一功能中执行增量和减量运算
最佳答案
这里有一些问题:
如果单击加号按钮,则禁用减号按钮,反之亦然,因为您在每个mode
语句中均选中了if
。
减号if
语句需要检查index
是> 0
而不是>= 0
每当您递减/递增时,都应确保重新启用另一个按钮,以便可以向上/向下返回年份。
我建议从检查mode
是plus
还是minus
开始,然后从那里开始。
当它们plus
年份时,然后检查index
并根据需要增加/禁用plus
按钮(并重新启用minus
按钮)。反之亦然,对于minus
模式。
$scope.navigateYear=function(year, mode) {
const index = $scope.yearArray.indexOf(year);
if (mode === 'plus') {
if (index >= 0 && index < $scope.yearArray.length - 1) {
this.year = $scope.yearArray[index + 1];
$scope.isMinusButtondisabled = false;
}else{
$scope.isPlusButtondisabled=true;
}
} else if (mode === 'minus') {
if (index > 0 && index < $scope.yearArray.length) {
this.year = $scope.yearArray[index - 1];
$scope.isPlusButtondisabled = false;
} else{
$scope.isMinusButtondisabled=true;
}
}
}
我希望这有帮助。
关于javascript - 递减计数器无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51631417/