Я нашел этот вопрос очень полезным для отправки формы, когда кто-то нажимает клавишу "enter":
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)">