AngularJS 关注所有输入的焦点
AngularJS watch all inputs for focus
我想关注应用程序中所有 input
的焦点事件。
像这样:
$scope.$watch('input',function(e){
if(e.focus){
// do stuff
}
});
知道如何做到这一点吗?
您不是在观看活动,而是在聆听。此外,弄乱 DOM 是指令的任务。因此,这个答案使用指令方法。您可以发出事件或在内部执行所有 "stuff"。
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>
我想关注应用程序中所有 input
的焦点事件。
像这样:
$scope.$watch('input',function(e){
if(e.focus){
// do stuff
}
});
知道如何做到这一点吗?
您不是在观看活动,而是在聆听。此外,弄乱 DOM 是指令的任务。因此,这个答案使用指令方法。您可以发出事件或在内部执行所有 "stuff"。
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>