【发布时间】:2016-01-12 19:47:31
【问题描述】:
我在模态对话框中为回车键创建了一个事件,但由于某种原因它无法正常工作。
(function () {
'use strict';
var app = angular.module('myModule')
.directive('ngEnterKey', function() {
return function(scope, element, attrs) {
element.bind("keydown keypress", function(event) {
var keyCode = event.which || event.keyCode;
// If enter key is pressed
if (keyCode === 13) {
scope.$apply(function() {
// Evaluate the expression
scope.$eval(attrs.dlEnterKey);
});
event.preventDefault();
}
});
};
});
<div ngEnterKey="logout()">
...
<a href="#" data-ng-click="logout()">Yes </a>
<a href="#" data-ng-click="cancel()">No </a>
...
</div>
我不确定为什么没有触发该事件。注销方法在按钮单击时正常工作。
【问题讨论】:
-
dlEnterKey的属性是什么?它也应该是<div ng-enter-key- 而不是ngEnterKey -
抱歉打错了。它是 scope.$eval(attrs.ngEnterKey);
-
对自定义指令使用
ng-前缀的不良做法。最好为角核心保留它,这样就不会出现潜在的未来冲突,而且以后有人在进行维护时不会认为它是核心 API 的一部分
标签: javascript angularjs