Giter Site home page Giter Site logo

Directive Execution Issue: Upgrading from Angular v17.2.0 to v17.3.0-rc.0 - Executing on Non-existent DOM Elements about angular HOT 8 CLOSED

naveedahmed1 avatar naveedahmed1 commented on April 28, 2024
Directive Execution Issue: Upgrading from Angular v17.2.0 to v17.3.0-rc.0 - Executing on Non-existent DOM Elements

from angular.

Comments (8)

alxhub avatar alxhub commented on April 28, 2024 3

Thanks for testing the RC ❤️ I believe this is the first template pipeline bug found "in the wild" - congrats!

from angular.

JeanMeche avatar JeanMeche commented on April 28, 2024 2

You're absolutely right, there is a regression a play here.

from angular.

JeanMeche avatar JeanMeche commented on April 28, 2024 1

Ok, I have a repro: https://stackblitz.com/edit/angular-issue-54798?file=package.json,src%2Fmain.ts&template=node

The directive is constructed twice when the selector is a class. The first time the element ref is a comment node. It only happens when it's wrapped by an @if block.

from angular.

dylhunn avatar dylhunn commented on April 28, 2024 1

More discussion in #54800 -- Joost has fixed this in the runtime, but I'm wondering whether we should also change Template Pipeline to match the TDB const array.

from angular.

JeanMeche avatar JeanMeche commented on April 28, 2024

Hi, could you provide a stackblitz reproduction of this issue ?
The error you are reporting indicates that elementRef.nativeElement exists but doesn't have a style property.

from angular.

naveedahmed1 avatar naveedahmed1 commented on April 28, 2024

Thank you @JeanMeche for looking into this. But since the if condition is false, it shouldn't be constructed at all, right?

It was working fine in v17.2.0.

from angular.

naveedahmed1 avatar naveedahmed1 commented on April 28, 2024

I removed everything from my app component and left the exact same code that I have mentioned above and its still throwing error.

I also tried printing the values of both variables in if conditions:

isBrowser: true
showInstallButton: false

So button indeed doesnt exist in dom. Therefore the directive shouldn't execute.

from angular.

angular-automatic-lock-bot avatar angular-automatic-lock-bot commented on April 28, 2024

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

from angular.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.