21

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

4

1 回答 1

44

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

使用ng-change指令

你可以这样写你的输入:

Search: <input ng-model="search.model" ng-change="changeHandler()">

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

在示波器上使用手表

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

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

这是一个说明两者的工作 plunk:http ://plnkr.co/edit/Jgb2slcBFzLNKK0JFNyo?p=preview

这两种方法之间的区别在于,它ng-change只会在用户与输入的迭代时$watch触发,而对于任何模型突变(从输入控件或对模型的任何其他更改触发)都会触发。因此,您可以精确地选择要对哪些事件做出反应。

于 2013-03-02T14:06:34.577 回答