2017-06-29 60 views
1

我想观看应用程序中所有input焦点活动。AngularJS观看焦点所有输入

事情是这样的:

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

任何想法,这可怎么办呢?

+0

你设置监视输入元素或范围变量? – HARI

回答

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>

+0

完美!这正是我所期待的。 – Matt