标签:
用AngularJS指令来处理focus和blur事件(翻译博文,原博文地址:http://blog.ejci.net/2013/08/06/dealing-with-focus-and-blur-in-angularjs-directives/)
用AngularJS指令来处理focus和blur事件
我正在开发一个app,这个app使用了AngularJS。我遇到一个问题,就是怎样给一个表单元素设置焦点。在AngularJS指令中没有ng-focus或者ng-blur。所以下面是我解决这个问题的一个方法,我没有说这是非常好的方法,只是我帮助我解决了这个问题而已。
?
问题描述
我有一个Web服务器,有时候需要从用户那里获取一些额外的信息。为了提升用户体验,我想在表单上添加焦点来获得使用者的注意。基本上,我发送一个post请求到服务器,并且从服务器获得响应,响应后需要用户填写一些额外的参数(安全证书,像:Captcha,GRID…).这个任务是要在页面上创建一个不错的覆盖(popup),然后在得到从服务器返回的响应之后让该表单元素得到焦点。
?
解决:
HTML代码
JavaScript代码
这很简单。通过自定义的指令my-focus来监听$scope.focusField1/2两个变量。如果这两个变量的值为true,触发焦点事件,同时焦点的监听器会将焦点设置在该元素上。
在失去焦点事件中,我定义了另外一个指令my-blur,该指令会调用为失去焦点事件定义的方法,如果失去焦点事件发生,该方法就会被调用,同时,焦点变量会重新变回false。
总结,我必须改变作用域中的值去让页面中某个元素获取焦点,这样做我觉得并不好,但是我还没找到更好的办法。如果你有更好的解决办法,请让我知道。
标签:
原文地址:http://www.cnblogs.com/1000px/p/4666937.html