components.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * DevExtreme (integration/angular/components.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 Callbacks = require("../../core/utils/callbacks");
  11. var ngModule = require("./module");
  12. ngModule.service("dxDigestCallbacks", ["$rootScope", function($rootScope) {
  13. var begin = Callbacks();
  14. var prioritizedEnd = Callbacks();
  15. var end = Callbacks();
  16. var digestPhase = false;
  17. $rootScope.$watch(function() {
  18. if (digestPhase) {
  19. return
  20. }
  21. digestPhase = true;
  22. begin.fire();
  23. $rootScope.$$postDigest(function() {
  24. digestPhase = false;
  25. prioritizedEnd.fire();
  26. end.fire()
  27. })
  28. });
  29. return {
  30. begin: {
  31. add: function(callback) {
  32. if (digestPhase) {
  33. callback()
  34. }
  35. begin.add(callback)
  36. },
  37. remove: begin.remove.bind(begin)
  38. },
  39. end: {
  40. add: end.add.bind(end),
  41. addPrioritized: prioritizedEnd.add.bind(prioritizedEnd),
  42. remove: end.remove.bind(end)
  43. }
  44. }
  45. }]);