Javascript 角度1.x聚焦在输入字段上只工作一次

Javascript 角度1.x聚焦在输入字段上只工作一次,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,我在web/移动应用程序上有一个搜索页面,其中有一个字段。当我们进入页面时,焦点必须设置在该字段上,这样用户就可以简单地开始键入。我已经创建了一个指令并将其链接到我的输入字段,但它只在我使用新缓存访问页面时起作用。当您使用移动设备访问页面时,键盘第一次出现,之后,您会看到它立即出现并消失。似乎输入字段的焦点只有半秒钟。我对这个问题试过好几种答案,但都没有解决 指令: app.directive('focusField',function($timeout) { return { link :

我在web/移动应用程序上有一个搜索页面,其中有一个字段。当我们进入页面时,焦点必须设置在该字段上,这样用户就可以简单地开始键入。我已经创建了一个指令并将其链接到我的输入字段,但它只在我使用新缓存访问页面时起作用。当您使用移动设备访问页面时,键盘第一次出现,之后,您会看到它立即出现并消失。似乎输入字段的焦点只有半秒钟。我对这个问题试过好几种答案,但都没有解决

指令:

app.directive('focusField',function($timeout) {
return {
  link : function($scope,$element,$attr) {
    $scope.$watch($attr.focusField,function(val) {
        $timeout(function() {
            val ? $element[0].focus() :
                $element[0].blur();
        });
    });
  }
}});
HTML:


我还尝试使用$(“#搜索字段”).focus()在控制器中设置焦点;但它有着完全相同的问题

关于如何在用户每次访问时将注意力集中在现场,有什么想法吗


提前谢谢

如果输入需要聚焦,为什么需要
focusfield='false'
。如果我是你,我只需删除
$attr
,以及
$watcher

link : function($scope,$element) {
    $timeout(function() {
        $element[0].focus();
    }, 0);
};
那就去

<input focus-field type="search" />

如果输入需要聚焦,为什么需要
聚焦字段='false'
。如果我是你,我只需删除
$attr
,以及
$watcher

link : function($scope,$element) {
    $timeout(function() {
        $element[0].focus();
    }, 0);
};
那就去

<input focus-field type="search" />


我真的很欣赏你的快速回答,但不幸的是,同样的问题出现了:字段仅在第一次获得焦点我真的很欣赏你的快速回答,但不幸的是,同样的问题出现了:字段仅在第一次获得焦点