#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 .