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