Dev Faq
7
votes

La fonction de mise au point ne fonctionne pas en angulaire

Focus simple ne fonctionne pas dans Angulaire

$scope.searchFocus = function() {
            $('.fedsearch-box').focus();
        };

javascript angularjs

1 commentaires

Stackoverflow.com/questions/14833326/... < / a> Regardez la réponse de Mark ici.


3 Réponses :


1
votes

Vous pouvez écrire une directive à cet effet comme;

<input type="text" data-ng-model="model.fedSearchTerm"
                    placeholder="New Search" required focus />


0 commentaires

11
votes

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" />


1 commentaires

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.



15
votes

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(); });


0 commentaires

Articles qui pourrait vous intéresser :

Impossible d'importer le module "@ angular / material"
Interaction profonde avec break and catch
Utilisation de node.js comment renommer tous les fichiers d'un dossier
Google Chrome Uncaught (promis) DOMException lors de la lecture AUDIO
© 2020 www.devfaq.fr - Licensed under  cc by-sa 3.0  with  attribution required.