После поиска примеров того, как установить элементы фокусировки с помощью angular, я увидел, что большинство из них используют некоторую переменную, чтобы наблюдать за тем, чтобы установить фокус, и большинство из них используют одну другую переменную для каждого поля, для которого они хотят установить фокус. В форме, с большим количеством полей, что подразумевается во множестве разных переменных.
С учетом jquery, но, желая сделать это с помощью angular, я сделал решение, которое мы задали фокус в любой функции, используя идентификатор элемента, поэтому, поскольку я очень новичок в angular, я ' Я хотел бы получить некоторые мнения, если это так, проблемы, что угодно, что-нибудь, что могло бы помочь мне сделать это лучше в angular.
В принципе, я создаю директиву, которая наблюдает за значением области, определяемой пользователем с директивой или по умолчанию focusElement, и когда это значение совпадает с идентификатором элемента, этот элемент сам устанавливает фокус.
angular.module('appnamehere')
  .directive('myFocus', function () {
    return {
      restrict: 'A',
      link: function postLink(scope, element, attrs) {
        if (attrs.myFocus == "") {
          attrs.myFocus = "focusElement";
        }
        scope.$watch(attrs.myFocus, function(value) {
          if(value == attrs.id) {
            element[0].focus();
          }
        });
        element.on("blur", function() {
          scope[attrs.myFocus] = "";
          scope.$apply();
        })        
      }
    };
  });
Ввод, который по какой-то причине должен получить фокус, сделает это.
<input my-focus id="input1" type="text" />
Здесь любой элемент для установки фокуса:
<a href="" ng-click="clickButton()" >Set focus</a>
И примерная функция, которая устанавливает фокус:
$scope.clickButton = function() {
    $scope.focusElement = "input1";
}
Это хорошее решение в angular? Есть ли проблемы, которые с моим бедным опытом я еще не вижу?