在angularjs中为模型添加侦听器

Rah*_*hul 20 javascript angularjs

我目前有一个模型,它是搜索框的价值.搜索操作完美地执行但我还希望在修改搜索文本时执行另一个功能.所以我想添加一个listenerwatch模型变量.我该怎么做?

pko*_*rce 43

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

使用ng-change指令

您可以像这样编写输入:

Search: <input ng-model="search.model" ng-change="changeHandler()">
Run Code Online (Sandbox Code Playgroud)

其中changeHandler是在作用域上定义的函数.

在示波器上使用手表

通过在您的控制器中写入:

$scope.$watch('search.model', function(newVal, oldVal){
    console.log("Search was changed to:"+newVal);
    $scope.search.watch = newVal;
  });
Run Code Online (Sandbox Code Playgroud)

这是一个工作插图,说明了两者:http://plnkr.co/edit/Jgb2slcBFzLNKK0JFNyo?p = preview

两种方法之间的区别在于,ng-change仅在用户使用输入进行迭代时$watch才会触发,同时将触发任何模型突变 - 从输入控件或模型的任何其他更改触发.因此,您可以精确地选择要做出反应的事件.