angular.element(“inputFieldId”)。focus()不会将焦点放在输入字段中

时间:2014-02-26 18:41:43

标签: javascript angularjs tabs

我有一个使用angular-ui-bootstrap的小型SPA来提供标签组件。该应用程序主要只显示显示应用程序运行状态的数据,但其中一个选项卡有一个输入字段,该字段应该在打开该选项卡时获得焦点。

每个标签组件的控制器都有一个“tabOpened”和“tabClos​​ed”功能,当打开或关闭该标签时会调用该功能。

在带有输入字段的选项卡的控制器中,我有以下内容:

$scope.tabOpened    = function() {
    $timeout(function() {
        angular.element("handlerSearchInput").focus();
    });
};

值得争论的是,在控制器中执行此操作是否合理,而不是设计某种指令来进行“focus()”调用,但这不是我首先需要解决的问题。我的第一个问题是这段代码实际上不起作用。当我打开选项卡时,我可以看到它在函数中的断点处,但是该字段没有得到焦点。没有错误,它只是不起作用。

我已经在Firefox和Chrome中测试了这个。

1 个答案:

答案 0 :(得分:0)

angular.element需要string - 在这种情况下它会创建一个新元素,或jQuery选择器将返回现有元素

所以你应该使用angular.element("#handlerSearchInput").focus();

API