Adding a listener on a model in angularjs

后端 未结 1 1886
独厮守ぢ
独厮守ぢ 2021-02-07 03:46

I currently have a model which is the value of a search box. The search operation is performing perfectly but I also want yet another feature to be performed when the search tex

1条回答
  •  悲哀的现实
    2021-02-07 03:54

    You've got 2 options to cover your use case:

    Use the ng-change directive

    You can write your input like so:

    Search: 
    

    where the changeHandler is a function defined on a scope.

    Use a watch on a scope

    by writing in your controller:

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

    Here is a working plunk illustrating both: http://plnkr.co/edit/Jgb2slcBFzLNKK0JFNyo?p=preview

    The difference between the 2 approaches is that ng-change will fire only as a result of user's iteractions with an input while $watch will fire for any model mutation - triggered from the input control or any other change to the model. So you can preciselly choose on which events you want to react.

    0 讨论(0)
提交回复
热议问题