Open mike-co opened 4 years ago
We just discovered this bug in our application. Seems like it was working properly in v9.1.1 and not in v9.1.2. We're reverting to v9.1.1 for now and will keep an eye on this.
Thanks for the report. This was caused by merging https://github.com/angular/angular/pull/36302. The failure was detected and the commit was reverted for the 9.1.3 release, which will be cut today.
FYI - please direct your future bug reports to the main angular/angular repo.
I'm still seeing this issue after upgrading to @angular/router v9.1.3. Was this included in the release?
@dcatoday - the commit that was reverted was attempting to fix a bug with the incorrect component being passed to canDeactivate but caused a regression in other configs. https://github.com/angular/angular/pull/36302 We reverted the commit to return behavior to what it was before, but that means canDeactivate will still pass the wrong component in the situation that is described in that PR. Without seeing your config, it’s hard to tell what the cause is. Please file an issue with a minimal reproduction on the main Angular repo if you believe there is a bug that isn’t addressed in the existing issue report.
Environment:
Overview of the Issue
Consider the following routing tree: which has canDeactivate guard
The guard is attached to SubAComponent
Then if I navigate from
sub-a
route tob
route then the canDeactivate guard will be called with the instance of theAComponent
, while it used to be called with the instance ofSubAComponent
. If I navigate fromsub-a
toa
, then the guard is called with the proper instance ofSubAComponent
.Expected behavior
From my understanding, the guard should only be called with
SubAComponent
.is it a regression?
Possibly
Reproduce the Error
The following is router v9.1.2 example which shows broken behavior: https://stackblitz.com/edit/angular-candeactivate-issue-ng9
And the example with the router v9.1.0 which shows I would assume proper behavior https://stackblitz.com/edit/angular-candeactivate-issue-ng9-router910
In both cases:
Possibly related to
https://github.com/angular/angular/commit/8e7f903 https://github.com/angular/angular/issues/34614 https://github.com/angular/angular/pull/36302