如何使用 AngularJS 的 if 语句输入范围内的值?

How to use values from range input into if statement with AngularJS?

我有一个可以改变音量的滑块。我还有一个按钮,每次单击它时都会将 count 变量加 1。

我写了一个 if 语句,如果这两个变量匹配但它不起作用,它应该发出警报。

if ($scope.count == $scope.data.volume) {
   alert('finished')
}

Codepen example

这里出了什么问题?

你的 If 语句不在 plusOne 函数中

$scope.plusOne = function() {
    $scope.count++
}
if ($scope.count == $scope.data.volume) {
    alert('finished')
}

只有包含

才会起作用
$scope.plusOne = function() {
   $scope.count++
   if ($scope.count == $scope.data.volume) {
      alert('finished')
   }
}

查看您在 codepen 上发布的代码(发布在这里,因为您在问题中发布的代码没有提供足够的上下文);

angular.module('ionicApp', ['ionic'])
  .controller('MyCtrl', function($scope, $timeout) {
    $scope.myTitle = 'Template';
    $scope.data = { 'volume' : '5' };
    $scope.count = 0;
    $scope.plusOne = function() {
      $scope.count++
    }
    if ($scope.count == $scope.data.volume) {
      alert('finished')
    } 
  });

您只在实例化控制器时检查 $scope.count == $scope.data.volume 一次。您的代码没有说明您需要在值实际发生变化时进行检查的事实。您需要使用 $scope.$watchCollection.

如果使用 Angular > 1.2(看起来你来自你的代码笔)...

$scope.$watchCollection('[count,data.volume]',function() {
  if ($scope.count == $scope.data.volume) {
    alert('finished')
  }
});

请注意,$scope.$watchCollection 的第一个参数 不是 数组 - 它是一个看起来有点像数组的字符串。