event_registrator.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /**
  2. * DevExtreme (integration/angular/event_registrator.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var eventRegistratorCallbacks = require("../../events/core/event_registrator_callbacks");
  11. var eventsEngine = require("../../events/core/events_engine");
  12. var ngModule = require("./module");
  13. eventRegistratorCallbacks.add(function(name) {
  14. var ngEventName = name.slice(0, 2) + name.charAt(2).toUpperCase() + name.slice(3);
  15. ngModule.directive(ngEventName, ["$parse", function($parse) {
  16. return function(scope, element, attr) {
  17. var attrValue = attr[ngEventName].trim();
  18. var handler;
  19. var eventOptions = {};
  20. if ("{" === attrValue.charAt(0)) {
  21. eventOptions = scope.$eval(attrValue);
  22. handler = $parse(eventOptions.execute)
  23. } else {
  24. handler = $parse(attr[ngEventName])
  25. }
  26. eventsEngine.on(element, name, eventOptions, function(e) {
  27. scope.$apply(function() {
  28. handler(scope, {
  29. $event: e
  30. })
  31. })
  32. })
  33. }
  34. }])
  35. });