This repository was archived by the owner on Apr 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 27.4k
ng-click causes digest already in progress when triggering with jquery #14673
Milestone
Comments
3 tasks
Narretz
pushed a commit
to Narretz/angular.js
that referenced
this issue
Jul 13, 2018
…on't $apply if already in $digest Digest cycle already in progress error can inadvertently be caused when triggering an element's click event while within an active digest cycle. This is due to the ngEventsDirs event handler always calling $rootScope.$apply regardless of the status of $rootScope.$$phase. Checking the phase and calling the function immediately if within an active digest cycle will prevent the problem without reducing current functionality. Closes angular#14673 Closes angular#14674
Narretz
pushed a commit
to Narretz/angular.js
that referenced
this issue
Jul 23, 2018
…on't $apply if already in $digest Digest cycle already in progress error can inadvertently be caused when triggering an element's click event while within an active digest cycle. This is due to the ngEventsDirs event handler always calling $rootScope.$apply regardless of the status of $rootScope.$$phase. Checking the phase and calling the function immediately if within an active digest cycle will prevent the problem without reducing current functionality. Closes angular#14673 Closes angular#14674
Narretz
pushed a commit
to Narretz/angular.js
that referenced
this issue
Jul 23, 2018
…n $digest Digest cycle already in progress error can inadvertently be caused when triggering an element's click event while within an active digest cycle. This is due to the ngEventsDirs event handler always calling $rootScope.$apply regardless of the status of $rootScope.$$phase. Checking the phase and calling the function immediately if within an active digest cycle will prevent the problem without reducing current functionality. Closes angular#14673 Closes angular#14674
Narretz
pushed a commit
to Narretz/angular.js
that referenced
this issue
Jul 23, 2018
…n $digest Digest cycle already in progress error can inadvertently be caused when triggering an element's click event while within an active digest cycle. This is due to the ngEventsDirs event handler always calling $rootScope.$apply regardless of the status of $rootScope.$$phase. Checking the phase and calling the function immediately if within an active digest cycle will prevent the problem without reducing current functionality. Closes angular#14673 Closes angular#14674
Narretz
pushed a commit
that referenced
this issue
Jul 25, 2018
…n $digest Digest cycle already in progress error can inadvertently be caused when triggering an element's click event while within an active digest cycle. This is due to the ngEventsDirs event handler always calling $rootScope.$apply regardless of the status of $rootScope.$$phase. Checking the phase and calling the function immediately if within an active digest cycle will prevent the problem without reducing current functionality. Closes #14673 Closes #14674
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Note: for support questions, please use one of these channels: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#question. This repository's issues are reserved for feature requests and bug reports.
Do you want to request a feature or report a bug?
Bug.
What is the current behavior?
When triggering an event using jquery within a ng-click handler trigger, it can cause a digest already in progress error.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).
This plnkr should illustrate a possible problem. However, I'm sure this happens often when integrating 3rd-party libaries into angular.
http://plnkr.co/edit/VAXafyll7hTXR5BR5FrR
What is the expected behavior?
Ideally, the common ng event directives would be able to call their handlers whether there is an active digest cycle or not.
What is the motivation / use case for changing the behavior?
I'm experiencing this problem in my work's app with a few components as we are growing our event handlers.
Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
This appears to not be specific to any particular browser / OS.
Other information (e.g. stacktraces, related issues, suggestions how to fix)
I have a potential PR that I can submit with this issue.
The text was updated successfully, but these errors were encountered: