微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/angularjs/148775.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐