Как вызвать событие "click" в Angular js

Как перенести приведенную ниже функцию jquery в angular js ?

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

проблема здесь я планирую вызвать кнопку отправки автоматически, когда пользователь заполняет некоторые данные в нашем приложении.

так как im из фона jquery,

спасибо заранее.

5 ответов


обычно вы не отправляете форму в AngularJS. Вы отправляете данные с помощью XHR и получаете ответ в JSON.

что-то вроде этого:

посмотреть

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

контроллер

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

Смотрите, также, это короткое демо.


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

$ timeout будет запускать $apply к циклу, если это необходимо.


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

на $timeout разбила угловые по $apply цикл.


вместо этого вы можете использовать ng-change и вызовите функцию отправки с вашего контроллера. Что-то вроде этого:--3-->

<input type="text" ng-model="userData.field1" ng-change="mySubmitFunction(userData)">

если вы F.екс есть кнопка нужно использовать ng-click="myFunctionName()" на самой кнопке.

и в файле скрипта вы используете myFunctionName = $scope.function(){ yourCode... }

если вы заботитесь совершенно новое к угловому... вы должны немного прочитать об этом, так как он в основном держится подальше от DOM, берет "контроль" над вашей веб-страницей и нуждается ng-app, ng-controller и использует $scope для хранения состояний для содержимого и данных.