专注于输入angularjs无法正常工作

时间:2015-03-12 09:56:45

标签: javascript angularjs focus

当我在第一个输入文本字段中打开一个表单内的页面时,我想创建一个焦点指令。这是指令

app.directive("getFocus", function() {
    return {
        restrict: 'AC',
        link: function(scope, element){
            console.log("focus!");
            element.focus();
        }
    }
});

并在我的html输入中

<input id="ss" data-ng-model="item.value" type="text" data-ng-class="{'get-focus': $first}">
<input id="tt" type="text" data-ng-model="item.value" data-ng-class="{'get-focus': $first}">

我使用ng-class因为是一个动态表单创建循环json,我不知道首先创建了哪个输入。该指令似乎无效。事实上,console.log没有出现在控制台中..出了什么问题?

1 个答案:

答案 0 :(得分:1)

我有这样的问题,我最终得到了这个指令

angular.module('myApp').directive('autofocusIf', function($timeout) {
return {
  restrict: 'A',
  scope: {
    autofocusIf: '&'
  },
  link: function($scope, $element) {
    $scope.$watch('autofocusIf', function(shouldFocus) {
      if (shouldFocus()) {
        $timeout(function() {
          $element[0].focus();
        });
      } else {
        $timeout(function() {
          $element[0].blur();
        });
      }
    });
  }
};
})

然后在html中

<div ng-repeat="repeat in repeats">
  <input type="text" autofocus-if="$first" ng-model="myModel" />
</div>