Я прочитал несколько статей и вопросов по StackOverflow, касающихся настройки фокуса в AngularJs.
К сожалению, все примеры, которые я прочитал, предполагают, что есть некоторый атрибут, который я могу добавить к элементу, чтобы получить фокус, например focusMe.
Однако что, если я не знаю заранее, на какой вход установить фокус? В частности, как установить фокус на первый элемент ввода в форме, для которой задано недопустимое значение $, то есть элемент, который не прошел проверку. Могут быть несколько входов, которые не проходят проверку, поэтому я не могу использовать директиву, которая просто пытается вызвать .focus () на основе этого. (Я делаю это по причинам доступности / WCAG, рекомендуется делать это при нажатии кнопки submit, чтобы минимизировать нажатия клавиш для поиска первого поля, которое не прошло проверку).
Объект $ error предоставит все элементы управления, которые не прошли проверку, но они сгруппированы по типу сбоя, а не в каком-либо порядке появления в форме.
Я уверен, что смогу придумать какой-нибудь хитрый способ сделать это. Директива в форме, которая получает некоторую широковещательную рассылку, когда необходимо установить фокус - эта директива затем может искать первый $ недопустимый элемент. Однако это кажется очень сложным, и я хотел бы знать, является ли это более «угловатым» способом сделать это.