Javascript 如何使用AngularJS将范围输入到if语句中的值?

Javascript 如何使用AngularJS将范围输入到if语句中的值?,javascript,css,angularjs,input,range,Javascript,Css,Angularjs,Input,Range,我有一个可以改变音量的滑块。我还有一个按钮,每次单击时,它都会将count变量提高1 我写了一个if-语句,如果这两个变量匹配但不起作用,它应该发出警报 if ($scope.count == $scope.data.volume) { alert('finished') } 这里出了什么问题?您的If语句超出了plusOne函数的范围 $scope.plusOne = function() { $scope.count++ } if ($scope.count == $sco

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

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

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


这里出了什么问题?

您的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上发布的代码(发布在此处,因为您在问题中发布的代码没有提供足够的上下文)

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

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


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

这并不能解释范围滑块可以更改data.volume的值这一事实
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.$watchCollection('[count,data.volume]',function() {
  if ($scope.count == $scope.data.volume) {
    alert('finished')
  }
});