Bootstrap $ uibModal焦点到元素

use*_*545 0 javascript angularjs angular-ui-bootstrap bootstrap-modal jqlite

我创建了一个AngularJs指令,该指令将焦点设置为html元素。但是它不适用于$ uibModal元素:

angular.module('ui.bootstrap.demo')
    .directive('focus', ['$timeout', function ($timeout) {
        return {
            restrict: 'A',
            link: function postLink(scope, element, attrs) {
                scope.$watch(attrs.focus, function(value) {
                    if(value === true) {
                        $timeout(function() {
                            element[0].focus();
                        });
                    }
                });
            }
        };
    }]);
Run Code Online (Sandbox Code Playgroud)

http://plnkr.co/edit/BrnFt1kYZN7VsIFRCt3S?p=preview

如何将焦点设置到$ uibModal中的元素?

use*_*545 5

我找到了解决方案:将autofocus属性添加到输入元素时,$ uibModal会将焦点设置为其。

    <div class="modal-body">
        <p class="input-group">
          <input type="text" class="form-control" autofocus/>
        </p>
    </div>
Run Code Online (Sandbox Code Playgroud)

http://plnkr.co/edit/yMNLLnSZL86ZYLsnuDV9?p=preview