我有两个按钮,一个用于递增,另一个用于递减我的范围。

我要:Min。数字= 0和最大数字= 50。

我已经尝试过了:

myApp.controller('StepCtrl', function($scope, $timeout, $state, $stateParams) {


    $scope.event = {
      priceid: 0,
    }

   if ($scope.event.priceid === 0) {

    console.log("This is 0")

    $scope.nextPrice = function() {
      $scope.event.priceid += 5;
    }

    $scope.previousPrice = function() {
      $scope.event.priceid = 0;
    }

    } else if ($scope.event.priceid === 50) {

    console.log("This is 50")

    $scope.nextPrice = function() {
      $scope.event.priceid = 50;
    }

    $scope.previousPrice = function() {
      $scope.event.priceid -= 5;
    }

    } else {

    console.log("This is into 0 and 50")

    $scope.nextPrice = function() {
      $scope.event.priceid += 5;
    }

    $scope.previousPrice = function() {
      $scope.event.priceid -= 5;
    }

    }

})


但是,我可以具有-40或95这样的值,我认为我的“ If”和“ Else”将被忽略。

你有主意吗?

谢谢您的回复。 :)

最佳答案

我将必须看到完整的控制器才能获得完整的图片。但是我相信问题在于,您的表达式在启动时会被评估一次,而不是实时进行评估。

我的解决方案是用此替换if-else语句。

$scope.event = {
  priceid: 0,
}

$scope.nextPrice = function() {
  if($scope.event.priceid < 50)
    $scope.event.priceid += 5;
}

$scope.previousPrice = function() {
  if($scope.event.priceid > 0)
    $scope.event.priceid -= 5;
}


这样,每次调用$ scope.previousPrice()或$ scope.nextPrice()时,您的条件都会被评估,而不是在运行时分配给那些方法。

关于javascript - AngularJS-限制增量和减量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38100086/

10-14 00:10