我有一个使用angular-ui-bootstrap的小型SPA来提供标签组件。该应用程序主要只显示显示应用程序运行状态的数据,但其中一个选项卡有一个输入字段,该字段应该在打开该选项卡时获得焦点。
每个标签组件的控制器都有一个“tabOpened”和“tabClosed”功能,当打开或关闭该标签时会调用该功能。
在带有输入字段的选项卡的控制器中,我有以下内容:
$scope.tabOpened = function() {
$timeout(function() {
angular.element("handlerSearchInput").focus();
});
};
值得争论的是,在控制器中执行此操作是否合理,而不是设计某种指令来进行“focus()”调用,但这不是我首先需要解决的问题。我的第一个问题是这段代码实际上不起作用。当我打开选项卡时,我可以看到它在函数中的断点处,但是该字段没有得到焦点。没有错误,它只是不起作用。
我已经在Firefox和Chrome中测试了这个。
答案 0 :(得分:0)
angular.element
需要string
- 在这种情况下它会创建一个新元素,或jQuery
选择器将返回现有元素
所以你应该使用angular.element("#handlerSearchInput").focus();
(API)