AngularJS观察所有焦点输入

时间:2017-06-29 18:09:57

标签: javascript angularjs angularjs-scope

我想在应用中的所有input上观看焦点事件。

这样的事情:

$scope.$watch('input',function(e){
  if(e.focus){
    // do stuff
  }
});

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:2)

你没有注意一个事件,你听它。另外,搞乱DOM是指令的任务。因此,这个答案使用指令方法。你可以发出一个事件或做所有的事情"内部。



angular.module('app', [])
  .directive('input', function() {
    return {
      restrict: 'E',
      link: Link
    };

    function Link(scope, elem, attrs) {
      elem.on('focus', function() {
        // do stuff
        console.log(elem[0].name + ' has been focused!');
      });
    }
  });

<div ng-app="app">
  <label for="input1">input1</label>
  <input name="input1" type="text">
  <label for="input2">input2</label>
  <input name="input2" type="text">
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
&#13;
&#13;
&#13;