Выберите ввод, отображаемый с помощью ng-show

#javascript #jquery #angularjs #ng-repeat #ng-show

#javascript #jquery ( jquery ) #angularjs #ng-повтор #ng-показать #jquery

Вопрос:

Я бы хотел сосредоточить внимание на вводе после того, как он будет показан с помощью ng-show . Однако для этого требуется, чтобы вызов jquery был выполнен после цикла $digest. Кто-нибудь знает, как запустить код после отображения элемента, не прибегая к setTimeout() или чему-то подобному? Вот пример решения проблемы: http://plnkr.co/edit/synSIP?p=preview

Комментарии:

1. не могли бы вы быть немного более конкретными, пожалуйста, относительно того, в чем ваша проблема?

2. Извините. Это лучше?

Ответ №1:

Вы можете написать простую директиву, не требующую jquery :

   yourApp.directive('focusme',function(){
   return function(scope,elem,att){
      elem.focus();
   }
  });
  

и вы можете использовать его следующим образом :

     <input type="text" focusme>
  

Ответ №2:

Если вы хотите, чтобы ввод автоматически фокусировался при его отображении, используйте атрибут автофокусировки html5:

Комментарии:

1. Это хорошая идея. Единственная проблема заключается в том, что наша клиентская база требует использования браузеров, не совместимых с HTML5. Кроме того, он автоматически выбирает только первый ввод в списке ng-repeat’d .