Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在angularjs中的模型上添加侦听器_Javascript_Angularjs - Fatal编程技术网

Javascript 在angularjs中的模型上添加侦听器

Javascript 在angularjs中的模型上添加侦听器,javascript,angularjs,Javascript,Angularjs,我目前有一个模型,它是一个搜索框的值。搜索操作执行得非常完美,但我还希望在修改搜索文本时执行另一项功能。所以我想添加一个监听器或监视模型变量。我怎么做 您有两个选项来涵盖您的用例: 使用指令 您可以这样编写输入: Search: <input ng-model="search.model" ng-change="changeHandler()"> 以下是一个工作图,说明了这两个方面: 这两种方法之间的区别在于,ng change仅在用户对输入

我目前有一个模型,它是一个搜索框的值。搜索操作执行得非常完美,但我还希望在修改搜索文本时执行另一项功能。所以我想添加一个
监听器
监视
模型变量。我怎么做

您有两个选项来涵盖您的用例:

使用指令

您可以这样编写输入:

Search: <input ng-model="search.model" ng-change="changeHandler()">
以下是一个工作图,说明了这两个方面:


这两种方法之间的区别在于,
ng change
仅在用户对输入进行i操作时才会触发,而
$watch
则会触发任何模型突变-由输入控件触发或对模型进行任何其他更改。因此,您可以准确地选择要对哪些事件做出反应。

您使用jquery吗?@SteveP否。我没有使用jquery。顺便说一句,我知道在
ngModel
值上使用
$watch
不是一个好做法。根据我读到的内容,
$watch
主要用于范围侦听,而ngChange让我们来听听
ngModel
更改。。。但也许我误解了。
$scope.$watch('search.model', function(newVal, oldVal){
    console.log("Search was changed to:"+newVal);
    $scope.search.watch = newVal;
  });