大佬教程收集整理的这篇文章主要介绍了更改焦点以输入AngularJS中的关键事件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在上面的测试用例中,我有三个输入元素,由ng-repeat指令生成.我在这个测试案例中的意图是,如果在这个方向上有一个输入可用,那么在其中一个输入中击中上/下箭头可以将焦点移动到相应方向的输入.
我是AngularJS的新手,所以我可能会失去一些直接的方式来做到这一点.无论如何,我定义了两个新的指令(自上而下),来处理上下文的事件,并调用$scope.focusNext和$scope.focusPrev方法,传递正确的条目移动.这是我被卡住的地方.
我知道处理控制器中的DOM元素不是有角度的方式,但是我看不出如何将焦点看作模型的属性/属性.我甚至想到有一个单独的$scope.focusedEntry,但是我应该注意该属性的更改?即使我和我检测到变化,我如何访问与我想要的重点对应的输入元素?
任何关于如何做这项工作的帮助都非常感谢.
HTML:
<body ng-controller="Ctrl"> <input ng-repeat="entry in entries" value="{{entry}}" key-focus /> </body>
控制器:
function Ctrl($scopE) { $scope.entries = [ 'apple','ball','cow' ]; }
指示:
app.directive('keyFocus',function() { return { reStrict: 'A',link: function(scope,elem,attrs) { elem.bind('keyup',function (E) { // up arrow if (e.keyCode == 38) { if(!scope.$first) { elem[0].prevIoUSELER_541_11845@entSibling.focus(); } } // down arrow else if (e.keyCode == 40) { if(!scope.$last) { elem[0].nextElementSibling.focus(); } } }); } }; });
以上是大佬教程为你收集整理的更改焦点以输入AngularJS中的关键事件全部内容,希望文章能够帮你解决更改焦点以输入AngularJS中的关键事件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。