Angular解决输入框由禁用状态转可用状态自动获取焦点失效问题

有时为了方便操作,我们会为输入框设置认焦点。而且会设置输入权限,会禁止用户输入。

但是当从禁止输入切换为可输入的时候,输入框却不能设置焦点了。

原因的话,我看了一下,估计是当我们改变输入框绑定的值得时候,输入框并没有切换状态,还是禁用状态,所以我们无法设置焦点,就是执行顺序的问题。

代码吧,写个指令,设置输入框焦点。

<!DOCTYPE html> <html ng-app="app"> <head> <Meta charset="UTF-8"> <title></title> <script src="jquery.js"></script> <script src="angular.js"></script> <script> angular.module("app",[]) .controller("ctrl",function($scope) { $scope.data = [{ name: "aaa",type: "string" },{ name: "bbb",type: "int" },{ name: "ccc",type: "float" }]; $scope.init = function() { $scope.dim = $scope.data[0]; } $scope.changeDim = function(i){ $scope.dim = i; } }) .directive("setFocus",function(){ return { scope:{ ngModel:"=" },link:function(scope,element,attrs){ scope.$watch("ngModel",function(n,o){ element.focus(); }) } } }) </script> </head> <body ng-init="init()" ng-controller="ctrl"> <ul> <li ng-repeat="item in data" ng-click="dim = item"> <a ng-click="changeDim(item)">{{item.name}}</a> </li> </ul> <input type="text" id="name" ng-disabled="dim.type == 'string'" ng-model="dim.name" set-focus> </body> </html> 

效果



此文档的作者:justforuse
Github Pages:justforuse

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...