小编Dou*_*oug的帖子

如何在每次打开模态时将焦点设置在角度ui模态内的textarea?

我有一个角度ui模态内的textarea,并且需要在模态可见时将焦点设置到它,不能在文档加载,因为它只在第一次打开模态时工作.

模态有动画打开,我需要在动画完成后设置焦点.

基于此处研究的其他问题,我创建了以下指令:

.directive('focusMe', ['$timeout', focusMe]);
  function focusMe($timeout) {
    return function (scope, element) {
    scope.$watch(function () {
      $timeout(function () {
        element[0].focus();
      });
    });
  };
};
Run Code Online (Sandbox Code Playgroud)

但是这个指令总是检查textarea的重点.由于我的模态有另一个输入字段,当我单击它时,焦点再次更改为使用该指令的textarea.如何仅在第一次显示模态设置焦点?

UPDATE

更多信息:在某种程度上解决了始终关注textarea的问题.

但是由于我的模态有动画淡入淡出,在IE中焦点显示在文本框上方,在外面,我不得不使用超时来IE设置正确的焦点.那样不是很好.一些更好的方法?

focus directive modal-dialog angularjs angular-ui-bootstrap

6
推荐指数
2
解决办法
1万
查看次数