我正在尝试使用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
每当您递减/递增时,都应确保重新启用另一个按钮,以便可以向上/向下返回年份。


我建议从检查modeplus还是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/

10-12 13:05