入力内で ENTER を押したときにボタンのクリック イベントを発生させたいのですが、AngularJS では非常に困難です。
私の見解(簡略化、更新):
<!doctype html>
<html lang="en" ng:app="test">
<head>
<meta charset="utf-8" />
<title>Test</title>
<link rel="stylesheet" href="css/app.css" />
</head>
<body ng-controller="TestController">
<button ng-click="onButton1Click()" class="btn1">Click Me</button>
<button ng-click="onButton2Click()" class="btn2">Don't click me</button>
<script src="lib/jquery/jquery.js"></script>
<script src="lib/angular/angular.js"></script>
<script src="js/testcontroller.js"></script>
</body>
</html>
このビューの私のコントローラー:
'use strict';
angular.module('test', [])
.controller('TestController', ['$scope',
function($scope) {
$scope.onButton1Click = function() {
alert("Hello");
}
$scope.onButton2Click = function() {
$('.btn2').click();
}
}])
すべてのコードをこれに単純化しました。btn2をクリックすると、このエラーが発生します
$apply はすでに進行中です
いいえ、$scope.onButton1Click()
直接呼び出すことはできません。btn1クリックをシミュレートする必要があります。