如何在Angular js中触发'click'事件

时间:2014-07-31 07:43:15

标签: javascript jquery angularjs

如何将jquery的以下函数迁移到angular js?

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

这里的问题是我计划在用户填写我们的应用程序中的某些数据时自动触发提交按钮。

所以我来自jquery background,

提前感谢。

5 个答案:

答案 0 :(得分:14)

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

如果需要,$ timeout将对该周期运行$。

答案 1 :(得分:7)

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

$timeout用于打破角度$apply周期。

答案 2 :(得分:1)

通常您不会在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>

<强> CONTROLLER

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

另请参阅此 short demo

答案 3 :(得分:-1)

除此之外,您可以使用ng-change并从控制器调用提交功能。像这样:

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

答案 4 :(得分:-2)

如果你有一个按钮,你需要在按钮上使用ng-click="myFunctionName()"

在脚本文件中,您使用myFunctionName = $scope.function(){ yourCode... }

如果你非常关心Angular ...你应该读一下它,因为它基本上远离DOM,对你的网页进行“控制”,并且需要ng-app,{{1并使用ng-controller来保存内容和数据的状态。