我试图从 jQuery 调用 ng-click 但无法让它工作。有人可以告诉我如何正确地做到这一点吗?
HTML:
<a ng-click="changeData()">Testing</a>
<a ng-click="changeData()">Testing 2</a>
<a ng-click="changeData()">Testing 3</a>
jQuery:
$(document).keydown(function(e){
if (checkNav && checkNav()) return;
if (e.keyCode == 37) {
// left
setCurrent(x,y-1);
e.preventDefault();
} else if (e.keyCode == 38) {
// up
setCurrent(x-1,y);
e.preventDefault();
} else if (e.keyCode == 39) {
// right
setCurrent(x,y+1);
e.preventDefault();
} else if (e.keyCode == 40) {
// down
setCurrent(x+1,y);
e.preventDefault();
} else if (e.keyCode == 13) {
$('a[ng-click="changeData()"]')
}
});
我希望它在单击 Enter 时调用与 ng-click 相同的函数。如果我在单击 Enter 时具有以下 href 代码,则效果很好:
} else if (e.keyCode == 13) {
window.location = current.attr('href');
e.preventDefault();
}
谢谢!
最佳答案
我认为你的意思是你想要这样的东西。让我知道这是否是您的意图:
index.html
<input ng-keyup="keyFn(event=$event)" ngclick="clickFn()">click</input>
Controller .js
angular.module('myApp')
.controller('myCtrl', function($scope) {
$scope.keyFn = function(event){
if (event.keyCode && event.keyCode === 13/*enter key*/){
someFunction();
}
};
$scope.clickFn = function(){
someFunction();
}
});
function someFunction(){
console.log("event fired");
//functionality shared between click and `enter` keypress
}
关于javascript - 无法从 jQuery 调用 Angular ng-click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304414/