Javascript angular.element(“inputFieldId”).focus()不';不要将焦点放在输入字段中

Javascript angular.element(“inputFieldId”).focus()不';不要将焦点放在输入字段中,javascript,angularjs,tabs,Javascript,Angularjs,Tabs,我有一个小型SPA,使用angular ui引导提供选项卡组件。该应用程序通常只显示显示应用程序运行状态的数据,但其中一个选项卡有一个输入字段,当该选项卡打开时,该字段应获得焦点 每个选项卡组件的控制器都有一个“tabOpened”和“tabClosed”函数,在打开或关闭该选项卡时调用该函数 在带有输入字段的选项卡的控制器中,我有以下内容: $scope.tabOpened = function() { $timeout(function() { angular.

我有一个小型SPA,使用angular ui引导提供选项卡组件。该应用程序通常只显示显示应用程序运行状态的数据,但其中一个选项卡有一个输入字段,当该选项卡打开时,该字段应获得焦点

每个选项卡组件的控制器都有一个“tabOpened”和“tabClosed”函数,在打开或关闭该选项卡时调用该函数

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

$scope.tabOpened    = function() {
    $timeout(function() {
        angular.element("handlerSearchInput").focus();
    });
};
值得争论的是,在控制器中这样做是否合理,而不是设计某种指令来进行“focus()”调用,但这不是我首先需要解决的问题。我的第一个问题是,这段代码实际上不起作用。当我打开选项卡时,我可以看到它击中了函数中的断点,但是该字段没有获得焦点。没有错误,只是不起作用


我已经在Firefox和Chrome上测试过了。

angular.element
要么使用
字符串
——在这种情况下,它将创建一个新元素,要么使用
jQuery
选择器返回一个现有元素

所以您应该使用
angular.element(“#handlerSearchInput”).focus()


()

Duh。就这样。谢谢