web-dev-qa-db-fra.com

Comment déclencher un événement 'clic' dans Angular js

comment migrer la fonction ci-dessous de jquery en jj angulaire?

  $( "#foo" ).trigger( "click" );

Le problème ici est que je prévois de déclencher automatiquement le bouton de soumission lorsque l’utilisateur remplira certaines données dans notre application.

donc comme im de fond jquery,

merci d'avance.

6
praveenpds

Habituellement, vous ne soumettez pas de formulaire dans AngularJS. Vous envoyez les données en utilisant un XHR et obtenez une réponse en JSON.

Quelque chose comme ça:

VUE

<form name="myForm" ng-submit="login(credentials)">

  <label>
    Username:
    <input type="text" ng-model="credentials.username" />
  </label>

  <label>
    Password:
    <input type="password" ng-model="credentials.password" />
  </label>

 <button type="submit">Login</button>

</form>

MANETTE

$scope.credentials = {};
$scope.login = function login(credentials) {
  var user = credentials.username;
  var pass = credentials.password;

  // Do some data validation
  if (!user || !pass) {
    $window.alert('Please, enter a username and a password!');
    return;
  }

  // Send the data and parse the response
  // (usually done via a Service)
  LoginService.login(user, pass);
};

Voir aussi cette courte démo.

1
gkalpak
$scope.triggerClick = function () {
  $timeout(function() {
    angular.element('#foo').trigger('click');
  }, 100);
};

Le délai d'attente $ s'exécutera et s'appliquera au cycle si nécessaire.

14
Ferox
$timeout(function() {
    angular.element(domElement).triggerHandler('click');
}, 0);

Le $timeout sert à rompre le cycle $apply de l’angulaire.

7
Gerben Rampaart