angular.js 按键指令事件神秘地没有触发
angular.js keypress directive event mysteriously not firing
我遵循了这个例子Submit form on pressing Enter with AngularJS
但我无法让它工作。这完全令人困惑。为什么按键事件没有被我的指令捕获?
http://plnkr.co/edit/A9oio2F61yHssE49aiCb?p=preview
app.directive('enterKey', function($log) {
return function(scope, element, attrs) {
element.bind("keydown keypress", function(event) {
if(event.which === 13) {
scope.$apply(function(){
scope.$eval(attrs.ngEnter, {'event': event});
});
event.preventDefault();
}
});
};
});
您的指令中存在复制粘贴错误 attrs.ngEnter
应该是 attrs.enterKey
,因为您更改了指令名称。
scope.$apply(function(){
scope.$eval(attrs.enterKey, {'event': event});
});
此外,您需要在 alertMe
方法中添加 event
参数以接受事件
$scope.alertMe = function(event) {
alert('I am alerted!');
}
我遵循了这个例子Submit form on pressing Enter with AngularJS
但我无法让它工作。这完全令人困惑。为什么按键事件没有被我的指令捕获?
http://plnkr.co/edit/A9oio2F61yHssE49aiCb?p=preview
app.directive('enterKey', function($log) {
return function(scope, element, attrs) {
element.bind("keydown keypress", function(event) {
if(event.which === 13) {
scope.$apply(function(){
scope.$eval(attrs.ngEnter, {'event': event});
});
event.preventDefault();
}
});
};
});
您的指令中存在复制粘贴错误 attrs.ngEnter
应该是 attrs.enterKey
,因为您更改了指令名称。
scope.$apply(function(){
scope.$eval(attrs.enterKey, {'event': event});
});
此外,您需要在 alertMe
方法中添加 event
参数以接受事件
$scope.alertMe = function(event) {
alert('I am alerted!');
}