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

pra*_*pds 6 javascript jquery angularjs

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

  $( "#foo" ).trigger( "click" );
Run Code Online (Sandbox Code Playgroud)

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

所以我从jquery背景,

提前致谢.

小智 15

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

如果需要,$ timeout将对循环运行$.

  • "jqLit​​e不支持通过选择器查找元素".所以angular.element(document.getElementById('#foo'))和"trigger()不是函数"所以.triggerHandler('click') (5认同)

Ger*_*art 7

$timeout(function() {
    angular.element(domElement).triggerHandler('click');
}, 0);
Run Code Online (Sandbox Code Playgroud)

$timeout是打破角的$apply周期.


gka*_*pak 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>
Run Code Online (Sandbox Code Playgroud)

控制器

$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);
};
Run Code Online (Sandbox Code Playgroud)

另请参阅这个简短的演示

  • 这是一个使用 AngularJS 的简单而干净的表单示例,但我只是看不出这个问题的正确答案...... (3认同)