angularjs文档只会告诉你用自定义指令获取焦点,如代码:
<body>
<div ng-app="myApp" >
<input type="text" set-Focus>
</div>
<script type="text/javascript">
var app = angular.module('myApp',[]);
app.directive('setFocus', function(){
return function(scope, element){
element[0].focus();
};
});
</script>
</body>
以下代码是网上找到的一段代码,能够很好的说明如何获取焦点
Demo如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<div ng-app="myApp" ng-controller="control">
<input type="text" set-Focus ng-blur="setBlur()">
<button ng-click="getFocus()">点击获取焦点</button>
</div>
<script type="text/javascript">
//模型
var app = angular.module('myApp',[]);
//控制器
app.controller("control",function($scope){
$scope.isCome = false;
$scope.isFocus = false;
$scope.getFocus = function(){
$scope.isFocus = true;
$scope.isCome = true;
};
$scope.setBlur = function(){
$scope.isFocus = false;
}
});
//自定义指令
app.directive('setFocus',[ function(){
return {
scope:false,//此处默认和父scope使用同一scope
link:function(scope, element){
scope.$watch("isFocus",function(newValue,oldValue, scope) {
if(newValue && scope.isCome){
element[0].focus(); //获取焦点
}
}, true);;
}
};
}]);
</script>
</body>
</html>