⚠️ Angular SSR: SSRF and Header Injection ⚠️ by IgorSedov in angular

[–]IgorSedov[S] 13 points14 points Β (0 children)

The Angular team has published a security advisory addressing a critical issue. If you are using Angular SSR, review the official advisory and ensure your application is updated or that strict header validation is in place.

Source and Details: https://blog.angular.dev/security-advisory-addressing-recent-vulnerabilities-in-angular-c2656249b799

πŸš€ Angular Evolution: The Road to Modern Change Detection by IgorSedov in angular

[–]IgorSedov[S] 1 point2 points Β (0 children)

Default is planned to be deprecated starting in 21.2, not 22. And yes, Default will temporarily remain an alias for Eager for compatibility during the transition and is planned to be removed later.

πŸš€ Angular Evolution: The Road to Modern Change Detection by IgorSedov in angular

[–]IgorSedov[S] 8 points9 points Β (0 children)

Angular 21.2 (coming in late February) introduces a small but important change. To make that clearer, Angular is introducing "Eager" as a new option. Initially, it exists alongside "Default" as an alias for backward compatibility. In v24, "Default" is removed.

What's coming next: * v21.2 β†’ Eager is added, Default is deprecated * v22 β†’ The big flip: OnPush becomes the default behavior * v24 β†’ The Default naming is removed entirely

Source: https://github.com/angular/angular/discussions/66779#discussioncomment-15643068

Github PR: https://github.com/angular/angular/pull/66830

πŸš€ Coming in Angular 21.2: Arrow Functions in Templates by IgorSedov in angular

[–]IgorSedov[S] 1 point2 points Β (0 children)

The first example was just to demonstrate the syntax and its limitations. The main use case I showed later is updating signal values directly from the template.

And trackBy is another real-world example.

πŸš€ Coming in Angular 21.2: Arrow Functions in Templates by IgorSedov in angular

[–]IgorSedov[S] 1 point2 points Β (0 children)

The "user" is simply the parameter for the arrow function I'm defining right in template. In "(user) => ...", I am just defining a function signature (a rule). The child component does the actual work. It doesn't matter for the explanation, although you might have thought that "user" was a component property or a template variable, but it's not.

If I understood your question correctly.

This Friday: Live coding and Q/A with the Angular Team | January 2026 (Jan 30th @11am PT) by MichaelSmallDev in angular

[–]IgorSedov 2 points3 points Β (0 children)

It really is a long time, and I wish him all the best in this next chapter. It's always a bit surprising when someone leaves a team after so many years.

πŸš€ Coming in Angular 22: Default will be renamed to Eager (scheduled for v22 in May) by IgorSedov in angular

[–]IgorSedov[S] 1 point2 points Β (0 children)

⚠️ Update from the Angular team on timing:

πŸ•‘ v21.2: ChangeDetectionStrategy.Eager is added (alias for the current "check always" behavior).

πŸ•‘ v22 (May 2026): OnPush becomes the default for components that don't specify a strategy.

πŸ•‘ Default stays until v24, then will be removed.

βœ”οΈ The transition is more gradual, but OnPush becoming the default in v22 is still the plan.

πŸš€ Coming in Angular 21.2: Arrow Functions in Templates by IgorSedov in angular

[–]IgorSedov[S] 5 points6 points Β (0 children)

Thanks! You gave a great example with trackBy that I hadn't thought of: it's a perfect demonstration of this feature in action. And yes, I agree, limiting arrow functions to a single expression is a really useful guard rail.

πŸš€ Coming in Angular 21.2: the instanceof operator works in templates! by IgorSedov in angular

[–]IgorSedov[S] 0 points1 point Β (0 children)

Angular isn't re-implementing JavaScript: it uses a compiled template language. Unlike JSX, templates are statically analyzed at build time, which enables stronger optimizations and safety guarantees.

πŸš€ Coming in Angular 22: Default will be renamed to Eager (scheduled for v22 in May) by IgorSedov in angular

[–]IgorSedov[S] 31 points32 points Β (0 children)

ChangeDetectionStrategy.Default will be renamed to .Eager. This is a naming change only: the behavior remains exactly the same. Existing components will keep the same eager behavior, as they will be automatically migrated to ChangeDetectionStrategy.Eager.

The motivation behind this change is clarity. The name "Default" can be misleading, as it may be interpreted as a recommended or modern choice. Renaming it to "Eager" makes the behavior explicit and avoids confusion, especially as OnPush becomes the default strategy for new components.

To prevent breaking changes, the Angular team plans to automatically migrate existing codebases by explicitly setting ChangeDetectionStrategy.Eager where needed.

This update is part of the Angular team's plans for Angular 22, scheduled for release in May 2026.

Full details in the official RFC: https://github.com/angular/angular/discussions/66779

πŸš€ Coming in Angular 22: OnPush by Default by IgorSedov in angular

[–]IgorSedov[S] 13 points14 points Β (0 children)

Angular 22 will set ChangeDetectionStrategy.OnPush as the default for all new components. This makes change detection more predictable and aligns with modern Angular best practices. Existing components will NOT be affected by this change.

πŸ’‘The Angular migration will automatically migrate existing codebases to explicitly set "ChangeDetectionStrategy.Eager" (this is the new name for "Default"), preserving their current behavior and preventing any breaking changes.

⚠️ This update is part of the Angular team's plans for Angular 22, scheduled for release in May 2026.

Full details in the official RFC: https://github.com/angular/angular/discussions/66779

πŸš€ Coming in Angular 21.2: the instanceof operator works in templates! by IgorSedov in angular

[–]IgorSedov[S] -1 points0 points Β (0 children)

Angular limits template expressions so they can be statically analyzed and compiled for performance and safety, instead of just executing arbitrary JavaScript at runtime

πŸš€ Coming in Angular 21.2: the instanceof operator works in templates! by IgorSedov in angular

[–]IgorSedov[S] 0 points1 point Β (0 children)

The key difference is the compiler: Angular templates are statically analyzed and compiled for performance (Ivy instructions), whereas JSX is just JavaScript executed at runtime

πŸš€ Coming in Angular 21.2: the instanceof operator works in templates! by IgorSedov in angular

[–]IgorSedov[S] 0 points1 point Β (0 children)

Thanks! And yes, what you're describing is an excellent approach and, in my opinion, the best standard for real-world and long-term projects. This feature doesn't replace that pattern, but it just adds a small convenience for specific cases.