angularjs:将焦点集中在指令中之前隐藏的输入元素中
Here is a simplified plunk to illustrate the problem
我有一个角度指令,在可视化之前编译一些html代码.在html中,只有在scope.isEditShown为true时,才会显示一个隐藏输入: < input ng-show ='isEditShown'type ='text'value ='{{content.name}}'class ='title_edit'/> 当调用scope.titleChange函数时,将显示该输入.此函数(绑定到ng-dblclick指令)只将true设置为scope.isEditShown,并尝试在输入元素上调用jQuery的focus()方法(以前存储在使用scope.input = $(“input)的链接器函数的作用域中:文字“,ae);: scope.isEditShown = true; scope.input.focus(); 简而言之,我想在双击事件时可视化以前隐藏的输入,并立即给予关注.需要立即关注,因为输入在丢失焦点时被隐藏(我希望用户立即能够编辑输入内容,当用户点击时,输入被隐藏). 问题在于,我似乎无法以编程方式给予输入元素的重点. 什么是有角度的方式来做我想要的?什么时候可以确定我的输入显示,什么时候可以有效地调用focus()?注意:如果我在使用范围$apply()之前给出焦点的输入,我将获得$apply已经在进行中的异常.如果我做一个安全的申请,foucus不会被给予.见the plunkr. (ps:我真的想明白,所以我不会使用自动对我做的配对libreries)
当您对某些数据绑定变量进行更改时,您需要等待相应的渲染发生,您需要使用着名的setTimeout 0(或者以$timeout服务方式).
这是一个plunkr,显示如何做到这一点. http://plnkr.co/edit/N9P7XHzQqJbQsnqNHDLm?p=preview (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |