javascript - 比较 $watch 函数内的基本类型时出错

标签 javascript angularjs

嗨,我正在尝试更好地理解 angularJs watch 功能 为此,我制作了以下垃圾箱 enter link description here 其中包含一 block watch 。 第一次正确执行 watch 时,我可以看到旧值和新值。 第二次我在输入框中输入数字和字符串时,我没有看到记录的旧值和新值

$scope.$watch(function(theScope){

 console.log(typeof theScope.price ==='number'); //logs true
      if(typeof theScope.price ==='number'){

        return theScope;
      }else{
        return false
      }

    },function(oldValue,newValue){
      console.log('old:'+oldValue);
      console.log('new:'+newValue);
    });

最佳答案

一些事情。如果你想在 watch 中使用函数语法,可以这样写:

var app = angular.module('app',[]);
app.controller('MainController',['$scope',
  function($scope){
    $scope.message =20;
    $scope.$watch(function($scope){
 console.log(typeof $scope.message ==='number');
        return $scope.message;
    },function(oldValue,newValue){
      console.log('old:'+oldValue);
      console.log('new:'+newValue);
    });
  }
]);

此外,您在 html 中绑定(bind)了 message,但在 watch 中使用了 price。另外,您使用的是 theScope,它实际上并未用于别名 $scope

将该代码粘贴到您的垃圾箱中,它应该可以工作。

关于javascript - 比较 $watch 函数内的基本类型时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36963378/

相关文章:

angularjs - 将属性分配给 Controller 中的 $scope

javascript - 如何从angularJS中的$firebaseArray获取值和$id

javascript - 从弹出窗口获取 JSON 结果。 Angular .JS

javascript - 在 MEAN 堆栈应用程序中从 mongodb 获取 "404 not found"

javascript - 无法读取未定义的属性长度 - Javascript

javascript - 动态增加文本框高度?

PHP/jQuery/Javascript - 变量中仅允许数字和某些字符

javascript - 在多边形中心绘制文本

javascript - 在 Chakra Core 中,如何在不引起内存问题的情况下返回值?

javascript - ngRepeat、JSON、angularJS - 不允许重复 - 通过指令中的模板