7

简单的焦点不适用于角度

<div class="search pull-right tab-{{ showDetails2 }}" data-ng-click="showDetails2 = !showDetails2; showDetails = false; showDetails1 = false;searchFocus();">

html

<input type="text" data-ng-model="model.fedSearchTerm"
                    placeholder="New Search" required class="span12 fedsearch-box" />

我的功能

$scope.searchFocus = function() {
            $('.fedsearch-box').focus();
        };
4

3 回答 3

15

我遇到了同样的问题。通过将焦点命令包含在 $timeout 中来解决它。确保在 .controller 函数中传递 $timeout 参数。

$timeout(function() { $('.fedsearch-box').focus(); });
于 2014-10-27T04:29:20.317 回答
11

这是一个运行良好的更健壮的实现:

myApp.directive('focusMe', function () {
    return {
        link: function(scope, element, attrs) {
            scope.$watch(attrs.focusMe, function(value) {
                if(value === true) {
                    element[0].focus();
                    element[0].select();
                }
            });
        }
    };
});


<input type="text" ng-model="stuff.name" focus-me="true" />
于 2013-08-30T08:13:07.790 回答
1

您可以为此目的编写指令,例如;

myApp.directive('focus', function () {
  return function (scope, element, attrs) {
           element.focus();
  }
});

在你的 HTML 中;

<input type="text" data-ng-model="model.fedSearchTerm"
                    placeholder="New Search" required focus />
于 2013-08-30T07:29:08.740 回答