我目前有一个模型,它是搜索框的值。搜索操作执行完美,但我还希望在修改搜索文本时执行另一个功能。所以我想添加一个listener
或watch
模型变量。我该怎么做?
问问题
35424 次
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 回答