eventman/angular_app/js/directives.js

55 lines
1.5 KiB
JavaScript

'use strict';
/* Directives for DOM manipulation and interaction. */
/* Directive that can be used to make an input field react to the press of Enter. */
eventManApp.directive('eventmanPressEnter', function () {
return function (scope, element, attrs) {
element.bind("keydown keypress", function (event) {
if(event.which === 13) {
scope.$apply(function (){
scope.$eval(attrs.ngEnter);
});
event.preventDefault();
}
});
};
});
eventManApp.directive('eventmanFocus', function () {
function link(scope, element, attrs) {
element[0].focus();
};
return {
link: link
};
});
eventManApp.directive('resetFocus', function () {
function link(scope, element, attrs) {
element.on('click', function() {
// FIXME: that's so wrong! We need to make the new directive communicate.
var el = angular.element(document.querySelector('#query-persons'));
el.length && el[0].focus();
});
};
return {
link: link
};
});
eventManApp.directive('escKey', function() {
return function(scope, element, attrs) {
element.bind('keydown keypress', function(evt) {
if (evt.which === 27) {
scope.$apply(function() {
scope.$eval(attrs.escKey);
});
evt.preventDefault();
}
});
};
});