Comments (2)
@garrettld That's exactly correct. Coalescing isn't compatible at the moment as a result.
Similar to #44314, there are situations where the current implementation of event coalescing falls over (because it's solely reliant on requestAnimationFrame
). In our zoneless scheduler, we take the approach of racing setTimeout
and rAF
:
from angular.
It appears these 2 features together create a sort of deadlock, where CD is waiting on the next animation frame (via requestAnimationFrame), and the view transition (which blocks the next animation frame) is waiting on CD to occur (via afterNextRender). Eventually the view transition times out, the requestAnimationFrame callback runs, and the deadlock is resolved.
I also noticed that this behavior isn't triggered by just any event. I think it's determined by whether there are events that are emitted asynchronously, and their timing relative to the router's work. As an example, the StackBlitz linked below shows an input element that reproduces the bug with NgModel but doesn't reproduce it when you leave off the NgModel. I think this is because NgModel triggers additional CD passes asynchronously that aren't being triggered by the version without NgModel. This isn't an NgModel bug, it's just that NgModel happens to do some stuff asynchronously.
https://stackblitz.com/edit/stackblitz-starters-zz3qp5?file=src%2Froutes.ts
Here's a non-Angular repro that approximates what's happening under the hood: https://stackblitz.com/edit/rxjs-fzehee?devtoolsheight=60&file=index.ts
from angular.
Related Issues (20)
- Aliases for Angular CLI commands are not listed in adev HOT 1
- ADEV is missing illustration on `ng completion`
- Support for setting Input Signals programmatically for projected content children HOT 8
- Components with *ngIf are rendered before others HOT 5
- document.createElement('canvas') fails out of the box HOT 4
- Getting started tutorial does not seem to work HOT 2
- Broken Link on Angular.IO HOT 2
- Change interpolation characters in the @component decorator HOT 2
- allow disabled formgroup at initialization HOT 1
- Angular 17 Tutorial : confusing sentence
- Blocks @defer breaks Server Side Rendering and Static Site Generation HOT 8
- Directive Execution Issue: Upgrading from Angular v17.2.0 to v17.3.0-rc.0 - Executing on Non-existent DOM Elements HOT 8
- OutputEmitter does not support for subscribe in v17.2.4 HOT 4
- angular accidentally calls a method in the project's two-party library HOT 3
- use createComponent and ApplicationRef.attachView, the primary router outlet will to be replaced if the dynamically created component contains router-outlet HOT 9
- CAST Issue raised (CVE-2024-21490) HOT 3
- Automatic migrations for signal inputs, outputs and view queries HOT 2
- @alan-agius4 For the supported versions, is the mentioned issue fixed because they have mentioned that all versions above 1.3.0 would have this issue. If that's the case updating the version wouldn't help us. HOT 2
- CAST Issue (CVE-2024-21490) HOT 2
- after render hook test is flaky in the repository HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from angular.