如何将光标焦点设置在输入字段上?

One*_*one 3 angularjs angular-material

我想在显示表单(指令)后立即将光标焦点设置在输入字段上。我尝试将以下代码添加到我的链接函数中:

link: function (scope, element, attrs) {
    element('input[name=headline]').focus();
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我还尝试了以下变体:

element.find('input[name=headline]').focus();
element.querySelector('input[name=headline]').focus();
Run Code Online (Sandbox Code Playgroud)

我在网上没有找到任何有用的信息。md-autofocus似乎与我想要实现的目标无关。

Alt*_*yss 5

选项1

HTML自动对焦

选项 2

尝试从角度玩ng-focus

更新

我的错,ng-focus来自文档:

指定焦点事件的自定义行为。

所以 ng-focus 不是你需要使用的。继续autofocus

ng-if 的最终解决方案

https://plnkr.co/edit/sb29aGHGtdFQ7fiLdbtN?p=preview

创建一个指令来为您应用焦点。

myApp.directive('yourAutofocus', ['$timeout', function($timeout) {
  return {
    restrict: 'A',
    link : function($scope, $element) {
      $element[0].focus();
    }
  }
}]);
Run Code Online (Sandbox Code Playgroud)