【发布时间】:2015-01-29 19:06:09
【问题描述】:
我发现this question 在有人按下“回车”键时提交表单非常有用:
Javascript:
angular.module('yourModuleName').directive('ngEnter', function() {
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();
}
});
};
});
HTML:
<div ng-app="" ng-controller="MainCtrl">
<input type="text" ng-enter="doSomething()">
</div>
我想知道的是,当按下“enter”键时,将字段设置为模糊。 doSomething() 看起来会模糊发件人字段吗?
我想保留 ngEnter 指令的原样,因为我想将它重新用于其他功能。
更新: 我知道我可以为模糊创建一个完整的指令(这就是我现在的方式),但我想做的是能够做这样的事情:
<input type="text" ng-enter="this.blur()">
或者如何将当前元素作为参数传递?
<input type="text" ng-enter="doBlur(this)">
【问题讨论】:
-
@SoluableNonagon 我更新了我的问题。我知道我可以为模糊制作自定义指令,但我想保持指令通用。
-
我认为您需要一个自定义指令来进行模糊处理。除了将事件传递给 doBlur 函数之外,不知道这样做的好方法。像这样:stackoverflow.com/questions/12994710/… 但你需要一些东西来传递 $event
-
我很害怕……不过,谢谢你的尝试。