Focus simple ne fonctionne pas dans Angulaire
$scope.searchFocus = function() { $('.fedsearch-box').focus(); };
3 Réponses :
Vous pouvez écrire une directive à cet effet comme;
<input type="text" data-ng-model="model.fedSearchTerm" placeholder="New Search" required focus />
Voici une implémentation plus robuste qui fonctionne très bien:
myApp.directive('focusMe', function () { return { link: function(scope, element, attrs) { scope.$watch(attrs.focusMe, function(value) { if(value === true) { element[0].focus(); element[0].select(); } }); } }; }); <input type="text" ng-model="stuff.name" focus-me="true" />
Cela fonctionne très bien. Pourriez-vous expliquer pourquoi la montre $ est nécessaire pour envelopper la mise au point et sélectionner? J'ai essayé de supprimer $ Watch et bien sûr cela ne fonctionne pas sans cela.
J'ai rencontré le même problème. Résolu en joignant la commande de mise au point à l'intérieur $ Timeout. Assurez-vous de passer le paramètre $ Timeout dans la fonction .Controller.
$timeout(function() { $('.fedsearch-box').focus(); });
Stackoverflow.com/questions/14833326/... < / a> Regardez la réponse de Mark ici.