Dataset/JS/ToDoApp_AngularJS/js/directives/todoEscape.js (22 lines of code) (raw):
/*global define*/
'use strict';
/**
* Directive that catches the "Escape" key on the element applied to and evaluates the expression it binds to.
*/
define([
'angular'
], function (angular) {
var moduleName = 'TodoEscapeDirective';
angular
.module(moduleName, [])
.directive('todoEscape', function () {
var ESCAPE_KEY = 27;
return function (scope, elem, attrs) {
elem.bind('keydown', function (event) {
if (event.keyCode === ESCAPE_KEY) {
scope.$apply(attrs.todoEscape);
}
});
scope.$on('$destroy', function () {
elem.unbind('keydown');
});
};
});
return moduleName;
});