Skip to content

feat(angular): full support zoneless #30804

Closed
Closed

Description

@luisbytes

Prerequisites

Describe the Feature Request

With the release of Angular 21, zoneless applications are now the default configuration. While zone.js can still be enabled, it is expected to be deprecated in the future.

Describe the Use Case

Adding zoneless support would let Ionic work out-of-the-box with Angular 21’s default setup and future Angular versions.

Describe Preferred Solution

No response

Describe Alternatives

No response

Related Code

No response

Additional Information

No response

Activity

  1. Sampath-Lokuge commented on Nov 23, 2025

    @Sampath-Lokuge

    Have you worked with Ionic and Angular 21 to develop a zoneless application?

  2. chrisweight commented on Jan 21, 2026

    @chrisweight

    Adding this here for reference: https://zenn.dev/rdlabo/articles/f66aea572eb352

  3. cperezabo commented on Mar 18, 2026

    @cperezabo

    I was thinking of starting a new project based on Ionic, but it seems to be dying slowly 😕.

    • PrimeNG and many other UI frameworks have already implemented Angular zoneless support (which is not new).
    • This issue has no official activity.
    • The last blog post asked developers to "help define the future of Ionic" (dying signal) and that Ionic was not going to implement Liquid Glass, but instead they were going to make the framework as generic as possible for anybody to implement whatever design system they want (which goes completely against the nature of Ionic, that was an Angular framework that matched the iOS/Android design guides).
    • Two years in v8.

    I don't see much future, but I want to be wrong.

  4. self-assigned this
    on Jun 3, 2026
  5. ShaneK commented on Jun 5, 2026

    @ShaneK
    Member

    Hey everyone!

    Thank you for your patience on this issue. We have a PR up for v9 to enable zoneless support and make it the default for Angular apps going forward: #31196

    If you'd like to try it early, you can use this dev build (updated 2026-06-09):

    8.8.9-dev.11781013468.1ed93da9
    

    As I said, this PR is built off of the v9 branch and there are other existing breaking changes you may need to migrate to. You can see the preview of the migration steps with the Angular changes here: https://ionic-docs-git-feat-zoneless-v2-ionic1.vercel.app/docs/updating/9-0#zoneless-change-detection

    Though there may also be other parts of that migration document that are relevant to you.

  6. rostislavcz commented on Jun 9, 2026

    @rostislavcz
    Contributor

    @ShaneK

    I tried this tag and ran into an issue with ion-modal that was introduced somewhere after 8.6.5 (up to that version it works fine, even with zoneless change detection).
    When I use an inline ion-modal inside a component rendered via router-outlet (not ion-router-outlet), I get an error when trying to swipe the active modal down:
    p-BtVHN9Na.js:4 Uncaught TypeError: Reduce of empty array with no initial value at Array.reduce (<anonymous>)

    And it breaks swiping then.

    In 8.6.5 it works correctly; the breakage appears somewhere after 8.7 or 8.8. I have scenarios where it makes sense to use ion-modal inside a router-outlet. With zone-based change detection it works fine.
    The error does not occur when I use ModalController.create in a child component inside the router-outlet — it only happens with an inline modal. It also does not occur when the modal is used inside ion-router-outlet.

    feel free to use this repo: https://github.com/rostislavcz/ion-modal-zoneless-bug

    in iii folder npm i, ionic serve and click on the button in home.page and swipe that modal down

  7. ShaneK commented on Jun 9, 2026

    @ShaneK
    Member

    Hey, @rostislavcz! Awesome find, thanks! I've resolved that in this dev build if you want to try again:

    8.8.9-dev.11781013468.1ed93da9
    

    Was there an issue created for this that we'll need to close out too by any chance?

  8. rostislavcz commented on Jun 9, 2026

    @rostislavcz
    Contributor

    @ShaneK works like charm now 👍

    Would you merge that fix into the current Ionic 8 stable version too, or only after version 9 is released?

  9. ShaneK commented on Jun 9, 2026

    @ShaneK
    Member

    @rostislavcz Sure thing! That's a pretty simple change, the PR is up here: #31202

    We'll get it reviewed and merged before too long and the fix will go out in v8 either tomorrow or next Wednesday, depending on the timing of things.

  10. added a commit that references this issue on Jun 9, 2026
    a1eb6a1
  11. ShaneK commented on Jun 10, 2026

    @ShaneK
    Member

    Hey everyone! Full zoneless support by default has been merged into v9! The last dev build for that PR is here:

    8.8.9-dev.11781013468.1ed93da9
    

    The next step is Angular 22 support, follow along here if you're interested: #31204 (comment)

  12. ionitron-bot commented on Sep 18, 2026

    @ionitron-bot

    Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.

  13. locked and limited conversation to collaborators on Sep 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions